Přeji příjemný den
Prosím o pomoc s jednoduchým prográmkem, který nefunguje, tak jak chci.
V případě že na PINC0 není 5V měla by svítit dioda na adrese PORTD0, když tam je 5V tak by měla svítit dioda na adrese PORTD1.
Ale zatím to funguje tak, že když tam není 5V tak svítí obě diody, a když tam je 5V tak zhasne dioda na adrese PORTD1.
Můžete mi pomoci odhalit chybu?
Mockrat dekuji
/* Program blikani LED*/
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRC=0x00;
DDRD=0xFF;
while(1)
{
if (PINC & 0b00000001)
//Pokud je na PINC0 privedeno +5V
PORTD=0x01;
//Rosvit diodu na PortuD adresa 0
else
PORTD=0x02;
//Jinak rosvit diodu na PORTuD adresa 1
}
}/* Program blikani LED*/
#include <avr/io.h>
int main(void)
{
DDRC=0x00;
DDRD=0xFF;
while(1)
{
if (PINC & 0b00000001)
//Pokud je na PINC0 privedeno +5V
PORTD=0x01;
//Rosvit diodu na PortuD adresa 0
else
PORTD=0x02;
//Jinak rosvit diodu na PORTuD adresa 1
}
}
Fórum › Mikrokontroléry
Těžké začátky s ATMega8 a blikání LED
Nejak se tam ten program zkopiroval 2x tak plati ten spodni... util delay tam byla jeste puvodne z blikani LED.
pravdepodobne se ti to rozkmita.. doporucuju vyuzit pull-up rezistory, ktere se daji zapnout na portech.. a spinat jen zem na vstup.. misto 5V...
kdyz nechas volne odpojenej pin tak to nechyta jak radio kazde ruseni okolo
jestli to kmita otestujes, kdyz ten vstup uzemnis
Prosim muzete uvest nejaky priklad jak to nastavit.
Myslel jsem, ze kdyz nastavim
DDRC=0x00; Tak je to nastavene.
Programuji v AVR Studiu.
Zkousel jsem k tomu dat jeste
PORTC=0x00 nebo PORTC=0xFF ale ani jeden z toho nefunguje.
Dekuji
Takže opravdu pomohli 2 věci.
a) Přidat do programu ješte PORTC=0xFF;
b) Vstup spínat s GND, což trochu nechápu, protože GND je vlastně 0V nebo ne?
Ale funguje to...
Děkuji za postrčení.
To DragonSoul : pull-up je vlastne rezistor na 5V .. pak by sis mohl dat pull down.. to by byl rezistor na 0..
pak bys to mohl spinat vuci 5V
ale to uz se neda zapnout uvnitr procesoru .. musel by se ten rezistor zapojit zvenku
#7 dori
si zaloz nove tema, dodej schema, co uz mas naprogramovano a tak. Nekdo urcite pomuze prekonat problemy, na ktere narazis.
Pokud nic nemas a cekas ze to za tebe nekdo udela, tak do inzerce se stejnymi detaily a financni odmenou za naprogramovani.
Ještě detail: co mají LED dělat když není stisknuto žádné tlačítko?
hu
#1 DragonSoul
S Atmega8 nejsou těžké začátky, jen je potřeba najít tu správnou dokumentaci.
http://www.robotplatform.com/howto/blinker/blinker_2.html
a možná by se vyplatilo použít AVR ATMEL studio a blikání diody naprogramovat v assembleru než na to hned brát céčko.
taky by bylo dobrý vědět co je to minimální pracovní konfigurace
https://electronics.stackexchange.com/questions/53713/what-is-the-minimal-set-of-parts-for-a-circut-with-this-avr-microcontroller
https://www.electroschematics.com/9529/atmega8-basic-input-output-interfacing-1/
protoženěkterý typy procesorů vyžadují určitou sestavu zapojení a vnějších obvodů aby fungovaly ok jinak nefungujou ok
#13 hlucheucho
jsem přehlídl, no pak, když není nic stisknuto měl by trvat předchozí stav
#15 dori
ten kod je nesmysl, nevím odkud jsi to brala, není vytvořen blok pro while, v podmínce máš závorkový nesmysl a středník na konci řádky, takže se vlastně nic neprovede a činnosti při splnění a nesplnění podmínky jsou stejné.
Doporučuji založit vlastní vlákno, také napsat typ setu (tam se dá obvykle zapojení najít na netu) nebo MCU + schema zapojení, případně alespoň u tlačítek úrovně u spínání (lze spínat na 5V nebo proti zemi) kvůli správnému definování podmínek, co se týče blikání, tak to jsem pochopil, že se mají střídat 1/2 tzn bity 0-3 proti 4-7.
V cyklu pak pořadí:
- test Tlačítka 0 > zhasnout LED
- test Tlačítka 7 > rozsvítit 1/2 LED
- test portu LED zda jsou všechny zhasnuté
. - pokud nejsou zhasnuté provést negaci na portu LED
- pauza
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Atmega8 uplne zacatky — založil bead
Prodej: 15W bílá LED nebo RGB led — založil KIIV
Blikani grafiky v C# — založil alois
Překreslování formuláře - blikání — založil Pebble
Moderátoři diskuze