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
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
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:
// 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.
Offline
↑ 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
↑ 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.
Offline
↑ RePRO:
http://www.gme.cz/vyvojove-prostredky-p … -p752-445/
Tohle by se na MIT využilo?
Offline
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.
// 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
Chválím, ještě stačí dát ten include pgmspace pryč, a program bude nejoptimálnější.
Offline