Prosím potřeboval bych pomoc s programem který jsem napsal. Jedná se o řízení jasu LED individualně bez použití vnitřních vestavěných periferií. Jsem na začátku takže se mi jedná o to pochopit proč to tak je a proč ne. Jde o to že program nahraju korektně a proběhne jen jednou a neopakuje se, přitom to mám ve smyčce “while”.Asi jsem udělal nějakou začátečnickou chybu a nevidím ji. Používám WinAVR s PonyProgramatorem. Vlastním knihy C od Herouta 1 , od Burkharda C pro mikrokontrolery a od Vani AVR v C a internet. Už nad tim ležim tři večery a nemůžu se tim prokousat a to jsem to už i několikrát přepsal.Asi to neni úplně ono ale jak jsem se již zmínil jde mi o to pochopit co a jak a kde a proč.Tady je můj bastl program přikládám jako soubor.Předem děkuji za pomoc a případnou kritiku.
Doplnění na apel. Chování programu: Jas LED diody po zapnutí stoupá až dosáhne maxima tak začne jas LED diody klesat až do nuly a to se má opakovat do kola a to se nestane. Proces proběhne jen jednou a pak LEDka zůstane zhasnutá.
Doplněn rychlý komentář do programu.Snad to bude jasné.
administrator: přejmenováno z “Pomoc s programem v C ATMEGA8 začátečník” jasled.c (2.14 KB)
Program je pěkně napsaný, s odsazením atd.
Problém je v tom, že jsi nám neřekl co má dělat.
Bez toho je velice obtížné prokousávat se příkazy a zjišťovat co dělají.
K tomu přispívá i absece kometářů v kódu.
Na první pohled jsem si všiml jenom FCPU. Myslím, že má být F_CPU.
Pardon. Chování programu: Jas LED diody po zapnutí stoupá až dosáhne maxima tak začne jas LED diody klesat až do nuly a to se má opakovat do kola a to se nestane. Proces proběhne jen jednou a pak LEDka zůstane zhasnutá.
O absenci komentářů vím, první verze byla i s komentáři jenže jsem to tolikrát přepisoval, že už jsem to tam nedopisoval a je to chyba které se budu snažit vyvarovat. Je mi jasné, že za půl roku bych asi nevěděl co jsem tim myslel.
administrator: příspěvek byl upraven
Předchozí příspěvek se necituje!
Teď už je mi to jasný kde jsem udělal chybu. Děkuji moc. Mám se pořád co učit.
Jen pro info ADCSRA=0xFF; tam bylo jen proto, že jsem prve odstraňoval jinou chybu z důvodu víceúčelového vývodu jsem chtěl vypnout AD převodník a nastavit vývod pouze jako Out. Ale v tom problém nebyl. Já hlupák jsem si neuvědomil kdy jsem měl původní zápis DDRC=0b00000100; se čte zleva do prava a ne zprava doleva takže jsem měl LEDku připojenou na špatném vývodě, který byl definnován jako vstup a nefungovalo mi to vůbec.
Musim se vrhnout do AVRstudia a prokousat simulátor nebo poraďte jiný.