programovanie - kodovy zamok
Moderátor: Moderátoři
programovanie - kodovy zamok
som tu novy, v AVR robim svoj prvy program a neviem si rady...
Chcem si spravit kodovy zamok, program pisem v C, svaba pouzivam ATmega16.
Klavesnica je napojena na PORTC(piny 0-7) a PORTD(piny 0-3)
- je nejaka funkcia, ktorou cakam na stlacenie hociakeho tlacidla na klavesnici?
- nechapem uplne presne ako funguje cely program v AVR -> napr vo VisualStudiu pisem v C# a viem ako presne program bezi, teda kde sa zastavi a caka na vstup a pod... ale v AVR to bezi stale cele dokola, ano?
dakujem za rady
- bohumilfulin
- Příspěvky: 111
- Registrován: 12 led 2010, 00:00
Funkce v C najdes ale spis takove ktere nejsou zavisle na HW (vypocet CRC,...) ale stejne vetsinou budes muset fci prizpusobit na svuj HW. Neco jako driver pro obsluhu klavesnice nehledej pro vsechny procesory.
Tak jak na tu klavesnici. Jsou dva zakladni zpusoby jak na klavesnici:
- detekce stisku pres preruseni, to bud vyvola zmena na portu. To myslim ze mega16 umi, nebo pres HW detekovat stisk na nejaky INTx. Vyhoda je ze program se o klavesnici stara pouze pokude dojde ke stisku, jinak muze delat neco jineho
- SW. proste jednou za cas (treba 50ms) oskenujes klavesnici zda neni nahodou stisknuta. Jednodussi pro pochopeni zacatecnika, ale zbytecne se spotrebovava cas i tehdy kdy ke stisku nedojde.
Moje doporuceni zni: udelej to SW abys pochopil co MCU chce a jak pracuje, jak na zakmity,... a pak to preklop do verze pod prerusenim.
Googluj, nejsi sam kdo resil klavesnici pod AVR tak hura nekomu na jabka.
sry, ze som neodpovedal, dlhsie som bol mimo netu...
Dakujem za rady, kodovy zamok som uz "sprovoznil"
Datasheet priamo na stiahnutie:
Kód: Vybrat vše
http://www.google.sk/url?sa=t&source=web&cd=1&ved=0CBgQFjAA&url=http%3A%2F%2Fsmanuals.ru%2Ffiles.html%3Fdatasheet%3D446341%2Fdata-PC2002-B&rct=j&q=pc2002-b&ei=leQBTZC4Jcbxsgb479iFCg&usg=AFQjCNGXtpz7BfjKO3CKR3Bi7siyqu4BmA&sig2=5VYuCcmXFRkuE8gQRrKZ_Q&cad=rjaobsahuje radic ST7066U (ten je ale kompatibilny s HD44780). Ako inicializujem LCD? Vsade na nete som nasiel len programy v Assemblery, potrebujem ale nieco, co je pisane v C.
Ak by niekto o niecom vedel, budem vdacny.
Co sa tyka toho displaya tak tebe treba vediet aky kontroler je v nom pouzity. Vyrobca udava ze je tam pouzity ST7066U.
http://www.crystalfontz.com/controllers/ST7066U.pdf
tento datasheet sa v podstate deli na 2 casti. prva je prepojenie lcd a kontrolera a druha je prepojenie kontrolera mcu.
prajem vela uspechov a pevnych nervov
a teraz k problemu.. ako mozem zapisat data do pamate IO? Pouzivam AtMega16. Pocas behu programu si mozem zmenit heslo. No ked vypnem napajanie, tak sa program spusti odznova a do kodu sa ulozi prednastaveny kod, nie ten, ktory sa v predchadzajucom behu programu zadal ako novy.
Ako je teda mozne po zmene kodu tento ulozit do pamate svaba?
Program by sa potom zmenil tak, aby sa do premennej nacitala hodnota, ktora je ulozena v pamati svaba.
http://www.atmel.com/dyn/resources/prod ... oc8154.pdf
strana 18, kapitola 7.4
Pokud používáte WinAVR, tak v knihovně jsou funkce:
Kód: Vybrat vše
void paramStore (u08 *parameters, u08 *memaddr, u16 sizebytes);
u08 paramLoad (u08 *parameters, u08 *memaddr, u16 sizebytes);Detailní popis funckí je v dokumentaci WinAVR.