Hledám tutoriál pro začátečníka pro AVR Studio 4 a AVR-GCC

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.

:arrow_right: 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…

ATmel 16 programovat to budu na PonyProg2000 mě se jedná o příklady v C ,debug a td… jak se pracuje v AVR Studiu4 díky.

Ahoj.
Opet docela neurcita odpoved.

  1. Spolecne s AVR Studiem je potreba naistalovat WinAVR, mas to?
  2. Jaky typ programatoru pouzivas? (AVR Dragon, biprog, LPT programator apod.)
  3. Jakou aplikaci by si chtel zkusit? (Doporucuji blikani LED z robotika.cz/guide/blink/cs
  4. 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

1)to mám
2] PonyProg2000 s tímhle programátorem tu adresu pier.own.cz/index.php?text=5-isp … vr-atmega8 jsem dnes zkoušel bohužel už asi není tak jsem to oskenoval díky.

edit: tak už ten odkaz funguje

asi tak?tento jednoduchý prográmek jsem našel v helpu díky

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:

[code]
#define F_CPU 1000000UL

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
DDRB=0xFF;
for (;:wink:
{
PORTB=0b00000001; //Rozsviti 1 diodu
_delay_ms(1000); //pocka 1 sekundu
PORTB=0b00000010; //Rozsviti 2 diodu
_delay_ms(1000); //pocka 1 sekundu
PORTB=0b00000100; //Rozsviti 3 diodu
_delay_ms(1000); //pocka 1 sekundu
}
}[/code]
Tak hodne stesti

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

První error ti říká vše, co potřebuješ vědět. Chybí ti v projektu “iocompat.h”, ve kterém jsou nadefinované konstanty uvedené v dalších errorech.

Možná bys měl začít s něčím jednodušším. Né že by tohle bylo složité, ale vyžaduje to znalost C a preprocesoru.

Č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

:arrow_right: 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

Tak konečně se mi to přeložilo bez chyb ty hodnoty jsem dal co mi v tu chvíli napadly abyste mi rozuměly já jsem napřed dělal v PIC

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 :wink: (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” :slight_smile:

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 :smiley: 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.

:slight_smile: To bylo tak pred 10 lety, ted se hraje World of Warcraft, kde se taky komunikuje anglicky :slight_smile:
Jenom takovy dotazek. Proc jsi nevyzkousel ten muj programek, je jednoduchy, lze jednoduse zlepsovat apod?