zdravim,
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?
Založen: Mar 22, 2005 Příspěvky: 1170 Bydliště: OV
Zaslal: st prosinec 01 2010, 19:45 Předmět:
Můžeš použít přerušení + potřebuješ snímat multiplexovanou klávesnici (takže snímat úrovně na pinech).
Začít můžeš vývojovým diagramem.
Na netu se těchto programů musí válet spousty.
Druhou otázku nechápu.
Založen: Jun 26, 2007 Příspěvky: 464 Bydliště: Vysočina
Zaslal: st prosinec 01 2010, 20:28 Předmět:
Program neumí zastavit. Pokud potřebuješ zastavit vykonávání programu,musíš zkrátka procesor něčím zabavit (třeba počítej do 10 a po dopočítání začni znovu nebo třeba NOP, GOTO $-1. Vyšší jazyky toto možná dělají pomocí nějakého příkazu _________________ Žádnej učenej z nebe nespadl ...
poustis se do programovani MCU a podle otazek mas mysleni windowsaka. Na to zapomen. Musis se smirit s tim ze programvani MCU je vzdy zavisle od typu MCU i od schematu zapojeni. To tak je. Ccko neni az tak univerzalni jak ocekavas.
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.
zdravim,
sry, ze som neodpovedal, dlhsie som bol mimo netu...
Dakujem za rady, kodovy zamok som uz "sprovoznil" Teraz sa zahravam s myslienkou pripojit na to este maly displej. Mam k dispozicii znakovy, 2x20, oznacenie PowerTip PC2002-B.
Datasheet priamo na stiahnutie:
obsahuje 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.
OK. Tak nato ze o tom ako funguju mcu a vobec procesory, si sa vybral velmi zle. mcu nieje C# v ktorom sa naucis kodit za 2 dni. C a C++ pre MCU sa na klasicke C a C++ podobaju len syntaxou a standardnymi kniznicami (tie by si mal zacat pouzivat az ked budes vediet o co v tom celom MCU svete vlastne ide).
Co sa tyka toho displaya tak tebe treba vediet aky kontroler je v nom pouzity. Vyrobca udava ze je tam pouzity ST7066U.
najskor by som chcel popriat vsetkym stastne a vesele
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.
Založen: May 10, 2004 Příspěvky: 4507 Bydliště: Košice
Zaslal: pá prosinec 24 2010, 14:14 Předmět:
jj pri zapnuti nacitat kod z eeprom do ram a potom uz len porovnavat zo zadanym, pripadne po zmene ulozit do eeprom.
Inak na pevno by som tam doplnil nejaky 10miestny kod (ktory by to vratil do povodneho stavu s defold kodom napr 0000 (predpokladam ze castozadavany kod bude do max 6 cisel/znakov)
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2, 3, 4Další
Strana 1 z 4
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.