Zdravím
Já vím že se to asi tady probíralo ale potřebuji nějaký polopatický návod nebo nějaké stránky pro začátečníka jak začít pracovat AVR studiem 4 v C AVR GCC konečně jsem si dodal odvahu a instaloval to studio díky za pomoc.
administrator: přejmenováno z “Práce ze AVR studiem4”
Bohuzel si nenapsal, s jakym HW chcez zacitm jestli mas programator apod.
Docela casto nezkuseny uzivatel zacina s aplikaci "Hello world"coz v nasich kruzich obnasi blikani LED.
Zkus to naprogramovat v AVR studiu a pokud to nebude fungovat, hod to sem a najdeme tam nejake chyby…
Uz si neco zkousel samotny? Dival jsi se do helpu AVR studia? Ono je toho docela dost k nastudovani a ja uz si nepamatuji, kde jsem zacal, takze jsou tam hlavni veci, na ktere musis prijit.
a) V Project/Configuration option musis nastavit svuj uC a frekvenci jakou pracuje 1Mhz.
b) Prelozit program lze pomoci F7, nebo Build/Rebuild All
c) Vysledny hex soubor pote uz lze nacist Ponyprogem2000 a nahrat do procesoru
Klidne.
Akorat nevim, jesli ten program bude fungovat. Teoreticky kdyz pripojis cervene diody pres 100 ohm odpor na portB tak kdyz budes mit dratky pripojene na PORTD tak kdyz ten dratek spojis se zemi, tak by se mela rozvitit prislusna dioda.
Jeste bych pred dal coz
DDRB=0xff;
dal
PORTD=0xff;
coz zajisti ze bude aktivovan pull-up rezistor a nebude to tak nachylne k ruseni.
Pokud chces pouze rozsvecet diody pripojene pres odpor na portu B zkus tento program:
O tomto článku víte? mcu.cz/~mcucz/comment.php?comment.news.1407 tady jsou nějaké knihovny.Jinak bych uvítal dál nějaké to schéma z (atmegou8-16 kterou mám doma) zdrojovým kódem na kterém bych to mohl víc pochopit taky asi si pořídit nějaký ten displej pro začátek ne? díky
Tak o tomto jsem tedy nevedel.
Muzes to s timhle zkusit, dival jsem se napr. na ten LCD driver a priklad pro LCD, zda se mi to docela komplikovane protoze tam musis mit zapojeny uart a asi i nejakou externi kartu a v knihovne nelze definovat jednotlive bity portu, takze nevis co kam pripojit. Pripada mi to jako jit na komara s houfnici.
Na alfanumericky LCD pouzivam tuto knihovnu jump.to/fleury V leve casti kliknes na LCD interface, vzdycky se vetsinou snazim najit takovou knihovnu, ktere docela rozumim a vim, ze kdyz nebude neco fungovat tak to dokazu najit…
Tak zatim
Program jsem si okopíroval přes schránku z mcu.cz/comment.php?comment.news.1991 a dopadlo to takto: avr-gcc -mmcu=atmega8 -Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT preruseni.o -MF dep/preruseni.o.d -c ../preruseni.c
../preruseni.c:5:103: error: iocompat.h: No such file or directory
../preruseni.c: In function '__vector_8':
../preruseni.c:25: error: 'TIMER1_TOP' undeclared (first use in this function)
../preruseni.c:25: error: (Each undeclared identifier is reported only once
../preruseni.c:25: error: for each function it appears in.)
../preruseni.c:45: error: 'OCR' undeclared (first use in this function)
../preruseni.c: In function 'ioinit':
../preruseni.c:57: error: 'TIMER1_PWM_INIT' undeclared (first use in this function)
../preruseni.c:69: error: 'TIMER1_CLOCKSOURCE' undeclared (first use in this function)
../preruseni.c:73: error: 'OCR' undeclared (first use in this function)
../preruseni.c:77: error: 'DDROC' undeclared (first use in this function)
../preruseni.c:77: error: 'OC1' undeclared (first use in this function)
make: *** [preruseni.o] Error 1
Build failed with 10 errors and 0 warnings...
díky za rady
Ahoj
Ano to je v poradku, musis si precist i ten text co je nad tim prikladem.
Nejprve zkus ten priklad co jsem ti poslal a potom zkousej neco vice. Muj priklad by mel bezet bez problemu na atmega8
Čau
Jak se ty konstanty definují
TIMER1_TOP
OCR
TIMER1_PWM_INIT
TIMER1_CLOCKSOURCE
OCR
DDROC
OC1
s přihlédnutím k tomuto článku mcu.cz/comment.php?comment.news.1991 velké díky
administrator: příspěvek byl upraven
Předchozí příspěvky se necitují.
Právě oním #define jak je uvedeno na začátku. Skutečná jména registrů a správné hodnoty je nutné vykoumat v datasheetu.#define OCR OCR1A // pokud ma prekladac definici pro 2B registr, jinak by bylo treba rozdelit
#define DDROC DDRD // OC1A je na PD5 -> port D -> DDRD
#define OC1 PD5 // PD5
// nasledujici (TIMER1_TOP, TIMER1_PWM_INIT, TIMER1_CLOCKSOURCE) nutno dopsat dle skutecneho nastaveni
Ty hodnoty pro timer jsi sestavil z požadované funkce z datasheetu, nebo jsi tam jen naflákal nějaká čísla? Ve druhém případě máš šanci řekněme 0.02% že to bude fungovat (2 registry -> 65536 kombinací, ať nežeru - 15 by jich mohlo makat)
Ještě vidím soubor “preruseni.c” - to bude asi ten s kódem že?
Je vhodné nejvyšší soubor kódu (ve kterém je funkce “main()”) pojmenovat nějak aby bylo snadno poznat, že je to právě on ten nejvyšší. Osobně ho pojmenovávám nečekaně “main.c”
To jsem pochopitelně naflákal od boku mě jde v prvé řadě o pochopení syntaxe a práce jazyka C v AVRstudia,jinak by bodl český překlad datashetu ATmega8 v knižní podobě samozřejmě za “lidovou cenu” kdo by nabídl a už ji nepotřebuje díky
Pokud si s tim chces opravdu hrat, tak doporuciji si zkusit prekladat datasheet sam, popr. se naucit anglicky, je velmi malo soucastek, ktere maji cesky datasheet a pozdeji v zivote se to urcite vyplati. Pamatuji se, ze jsem se anglicky naucil hranim textovych online her (uz jsem starsi rocnik) kde bylo vsechno anglicky, ale po par dnech hrani a listovani ve slovniku uz to slo samo.
Dnes je vse jednodussi, muzes si pustit google online translator a kus textu tam vlepis, preklad je tedy hrozny ale smysl obcas zustane, takze toho bych se vubec nebal…
O tom googlu translátoru samozřejmě vím tam kolikrát vyjdou takové nesmysly ale o těch textových hrách slyším po prve to by mě možná mohlo pomoc na netu jejich fůra která je nejlepší? díky.
To bylo tak pred 10 lety, ted se hraje World of Warcraft, kde se taky komunikuje anglicky
Jenom takovy dotazek. Proc jsi nevyzkousel ten muj programek, je jednoduchy, lze jednoduse zlepsovat apod?