Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 21. 02. 2012 16:09

DeMidix
Příspěvky: 63
Reputace:   
 

Příklad pro ATMega644 (AVR Studio)

Zdravím,

Mám příklad:

Vytvořte program, který zajistí blikání LED v nejnižším bitu přípravku M8LED. Přípravek M8LED připojte na port PA. Blikání bude probíhat tak, že LED bude svítit do dobu 0,5 s a po dobu 0,5s bude zhasnutá.
Pro odměření časového intervalu použijte funkci  _delay_ms z hlavičkového souboru DELAY.H. Parametr teto funkce určuje interval čekání v ms.
Měl bych to napsat pomoci C v AVR Studiu.

Vůbec nevím jak na to, setkávám se s tim úplně poprvé.
Věděl by někdo?

A za druhé, nemám ani AVR Studio a chtěl bych se zeptat jestli se to dá nějak stáhnout free?
Našel jsem něco na stránkách Atmelu ale tak to chtělo nějakou registraci nebo co.

Díky

Offline

 

#2 23. 02. 2012 14:41 — Editoval RePRO (23. 02. 2012 14:49)

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: Příklad pro ATMega644 (AVR Studio)

Zdravím,
děláš Polytechnickou školu v Jihlavě, viď? :-)
Před rokem jsem tento předmět (Mikroprocesorová technika) absolvoval, kód bude vypadat takto:

Code:

 // makra a definice
 #define __AVR_ATmega644__ 1
 #define F_CPU 20000000UL
 
 // includes
 #include <avr/io.h>
 #include <util/delay.h> 
 #include <avr/pgmspace.h> 
 
 int main() {
      
    // nastavení výstupních bitů
    DDRA  = 0b00000001;
    // pomocná proměnná
    unsigned char p;
    // inicializace
    p = 0b11111111;
      
    while (1) {   
        // provedeme negaci a hodíme na port
        p =~ p;   
        PORTA = p;
        // a počkáme
        _delay_ms(500);
    }
 
 return 0;
 }

Před rokem jsme používali AVR Studio 4. Nevím, jestli to pan Matoušek aktualizoval na AVR Studio 5. Normálně vyplň formulář a pak to nainstaluj... ;-)
Další dotazy nemusíš psát sem, rovnou napiš do naší školní skupiny (našeho oboru) na FB.


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#3 23. 02. 2012 18:25

DeMidix
Příspěvky: 63
Reputace:   
 

Re: Příklad pro ATMega644 (AVR Studio)

↑ RePRO:

Díky..

Něco jsem koumal ale házelo mě to chybu v ty negací..tak to zkontrolují podle tvého..Díky

Jinak jedu v AVR 5, 4 mi nejde nainstalovat.

Ale občas mi blbne Debuging..vždycky se mi to zastaví u _delay_ms a začne to něco hlásit a vůbec tomu nerozumím..

Offline

 

#4 23. 02. 2012 18:27

DeMidix
Příspěvky: 63
Reputace:   
 

Re: Příklad pro ATMega644 (AVR Studio)

↑ RePRO:

Ještě bych se chtěl zeptat náhodou nemáš asi ten přípravek na zkoušení (LED+ATmega644 přípravek)?

Nebo nevím kde bych to mohl sehnat?

Offline

 

#5 23. 02. 2012 18:52

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: Příklad pro ATMega644 (AVR Studio)

↑ DeMidix: Tak pokud tam něco zapomeneš (inklůdovat třeba knihovnu), tak Tě samozřejmě překladač seřve. ;-) Je třeba založit projekt podle toho úvodního slidu. A pak tam nahážeš to, co jsem Ti poslal. ;-)

Co se týče AVR ATMega644 mikrokontroléru a přípravků, tak stačí napsat do té skupiny a kámoš se Ti kdyžtak ozve (sám to pájel). Pan Matoušek bohužel ochotný moc není a nezapůjčuje to.

Samotné LED Ti jsou ale k ničemu. Na pár demonstrací se to dá použít, ale to je tak vše. Na dalších cvikách budete bezprostředně používat další přípravky (z toho máme 7-seg, další ne):
- 7-seg,
- A/D převodník,
- dynamicky řízený displej,
- dynamický řízený displej pomocí SPI sběrnice,
- piezoměnič,
- LCD modul (řízený obvodem HD44780),
- LCD modul (řízený pomocným mikroprocesorem ATtiny2313 - komunikace pomocí USART),
- rotační spínač,
- maticová klávesnice.


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#6 23. 02. 2012 19:21

DeMidix
Příspěvky: 63
Reputace:   
 

Re: Příklad pro ATMega644 (AVR Studio)

Offline

 

#7 23. 02. 2012 19:40

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: Příklad pro ATMega644 (AVR Studio)

Jo, to je ono, ale jak jsem psal, plno přípravků k tomu mít nebudeš...


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#8 25. 02. 2012 23:39

qazasd
Zelenáč
Příspěvky: 11
Reputace:   
 

Re: Příklad pro ATMega644 (AVR Studio)

Dovolil jsem si poupravit kod od RePro.  Vyhoda XORovani primo PORTu A je jednak v usetrenem bajtu pameti (neni potreba pomocna promenna p :) ) ... ale hlavne v prepinani pouze posledniho bitu a ne celeho registru PORTA. Nedochazi tak k zbytecnemu zapojovani a odpojovani pull-up rezistoru na pinech 7 az 1.

Code:

 // makra a definice
 #define __AVR_ATmega644__ 1
 #define F_CPU 20000000UL
 
 // includes
 #include <avr/io.h>
 #include <util/delay.h> 
 #include <avr/pgmspace.h> 
 
 int main() {
      
    // nastavení výstupních bitů
    DDRA  = 0x01;
      
    while (1) {   
        PORTA ^= 0x01;
        // a počkáme
        _delay_ms(500);
    }
 
 return 0;
 }

Offline

 

#9 27. 02. 2012 13:35

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: Příklad pro ATMega644 (AVR Studio)

Chválím, ještě stačí dát ten include pgmspace pryč, a program bude nejoptimálnější.


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson