Názory ke článku Praktický příklad II
5. 4. 2007
Rád bych se zeptal na otázku trochu mimo téma tohoto článku. Mohu používat hlavičkový soubor "math.h" a v něm definované fce? A ještě mě zajímá jestli existuje nějaký ekvivalent typu BOOL pro programování čipů. Jinak píšete moc pěkný seriál, děkuji za něj.
Pokud píšete programy v assembleru, tak samozřejme math.h použít nemůžete. Jiná situace je při využití C compilerů. Většina z nich tu možnost nabízí. Osobně jsem přešel z CodeVision na GCC compiler s použítím AVR Studia jako editoru a tam tu knihovnu používám.
Pokud vím, typ BOOL v klasickém C není. Některé překladače ho ale nahrazují typem UNSIGNED CHAR a pojemenovávají konstanky TRUE jako 1 a FALSE jako 0. Co totiž chápe nenulové číslo jako TRUE (i záporné v případe signed) a nulové jako FALSE
Jinak děkuji za uznání, jsem rád, když nekomu tyto články pomohou. Bohužel ale na ně nemám moc času a pracuji převážně s jinými procesory, proto doufám, že výklad je alespoň trochu srozumitelný...
26. 4. 2007
Zdravim vsetky a najma Ondreja ;)
Chcem zanechat len take malinke upozornenie, pre tych co si nahodou nevsimnu ( aby zbytocne nehladali chybu ;) ).
AK sa nahodou nezmenilo nase zadanie z dielu 'Praktická úloha I'
* NAHORU – PD7 * DOLU – PC0 * ENTER – PC1
tak v hore uvedenom ASM kode sme si zmenili (poplietli vstupy) na takuto konfiguraciu :
* NAHORU – PC0 * DOLU – PC1 * ENTER – PC7
=> vobec nevyuzivame ziadny pin z portu D ako vstup
(ak sa ovsem nemylim -co je pri mojej znalosti ASM kodov,velmi lahke :))
Je to opravdu tak, oproti minulému řešení se změnily piny. Bohužel jsem na to v textu zapoměl upozornit. Je to proto, že narozdíl od minulého řešení, které jsem ladil na baslt-poli jsem toto už ladil na vývojové desce a proto jsem nevyužil port D.
4. 5. 2007
zdravim,
zajima me proc prechazite na avr studio?
sam sem si pro sebe zkousel vyhodnotit vyhody a nevyhody techto vyvojovych nastroju a u me tez vyhralo avr studio a GCC.
pokud bych chtel udrzovat projekt zkompilovatelny v obou kompilatorech..
..na co si musim dat pozor? koukal sem ze preruseni se definuji jinak..
co jeste?
dekuji.
Na GCC přecházím protože si tak příklady mohou vyzkoušet i linuxový čtenáři, kteří codevision nevlastni. Navíc, málokomu se chce hledat crack...
Těch rozdílů je opravdu dost. Zvláště pak ve vybavenosti knihovanami. Z tohoto pohledu je GCC dost chudé. Na druhou stranu jej lze ale integrovat do AVR Studia, což je jistě rozhodující vhoda...
13. 8. 2008
Dobry den,
v soucasne dobe zkousim zobrazit data prijata UARTem na LCD,ale bohuzel se mi to nedari.
Mohl by jste mi pomoci?
V prvnim kroku jsem posilal na LCD znaky pomoci lcd_putchar(k); kde k nabyvalo hodnoty od 33 do 256. Zobrazena data souhlasila s ASCII tabulkou.
Pote jsem chtel zobrazit znak poslany pres UART na LCD a zde nastala chyba a nezobrazilo se, co jsem poslal.
Vytvoril jsem si program, ktery vysila z UARTu znaky od 33 do 256(stejne jako pro LCD),
ale k memu prekvapeni hyperterminal vypisuje tyto znaky:
AFGHINOPQVWXY^_`afghinopqvwxy~€ ? † ‡ ˆ ‰ Ž ? ‘ – — ˜ ™ ž Ÿ ¡ ¦ § ¨ © ® ¯ °
± ¶ · ¸ ¹ ¾ ¿ À Á Æ Ç È É Î Ï Ð Ñ Ö × Ø Ù Þ ß à á æ ç è é î ï ð ñ ö ÷ ø ù þ
!&'()./016789>?@AFGHINOPQVWXY^_`afghinopqvwxy~€?†‡ˆ‰Ž?‘–—˜™ž
Ÿ ¡¦§¨©®¯°±¶·¸¹¾¿ÀÁÆÇÈÉÎÏÐÑÖ×ØÙÞßàáæçèéîïðñö÷øùþ !&'()./016789>?@
Takto vypada program:
#include <tiny2313.h>
#include <stdio.h>
#include <delay.h>
void main(void)
{
int i;
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x06;
UBRRH=0x02;
UBRRL=0x08;
while (1)
{
for (i = 33; i < 256; i++)
{
putchar(i);
delay_ms(250);
}
};
}
Zkousel jsem ruzne nastaveni rychlosti, ale vysledek stale stejny. Nastaveni portu UARTu a PC jsou samozrejme shodne.
Mohl by jste mi poradit s vypsanim prijateho znaku na LCD?
Dekuji za pomoc