Těžké začátky s ATMega8 a blikání LED – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Těžké začátky s ATMega8 a blikání LED – Mikrokontroléry – Fórum – Programujte.comTěžké začátky s ATMega8 a blikání LED – Mikrokontroléry – Fórum – Programujte.com

 

DragonSoul
~ Anonymní uživatel
14 příspěvků
17. 11. 2009   #1
-
0
-

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

}
}

Nahlásit jako SPAM
IP: 62.177.99.–
DragonSoul
~ Anonymní uživatel
14 příspěvků
17. 11. 2009   #2
-
0
-

Nejak se tam ten program zkopiroval 2x tak plati ten spodni... util delay tam byla jeste puvodne z blikani LED.

Nahlásit jako SPAM
IP: 62.177.99.–
KIIV
~ Moderátor
+43
God of flame
17. 11. 2009   #3
-
0
-

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

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
DragonSoul
~ Anonymní uživatel
14 příspěvků
17. 11. 2009   #4
-
0
-

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

Nahlásit jako SPAM
IP: 62.177.99.–
DragonSoul
~ Anonymní uživatel
14 příspěvků
17. 11. 2009   #5
-
0
-

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í.

Nahlásit jako SPAM
IP: 62.177.99.–
KIIV
~ Moderátor
+43
God of flame
17. 11. 2009   #6
-
0
-

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

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
dori0
Duch
28. 10. 2018   #7
-
0
-

Dobrý den,

taky potřebuji pomost s programem. Zadaní zní takto: Pokud stisknu tlařitko 0 všechny LED zhasnou, pokud stisknu tlačitko 7 začnou blikat horní a spodní ledky. Všechno to je prováděné v programu AtmelStudio7.0

Děkuji za pomoc

Nahlásit jako SPAM
IP: 85.207.93.–
KIIV
~ Moderátor
+43
God of flame
28. 10. 2018   #8
-
+1
-
Zajímavé
Kit +

#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.

Nahlásit jako SPAM
IP: 89.24.57.–
Program vždy dělá to co naprogramujete, ne to co chcete...
29. 10. 2018   #9
-
0
-

Ještě detail: co mají LED dělat když není stisknuto žádné tlačítko?

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Jerry
~ Anonymní uživatel
504 příspěvků
29. 10. 2018   #10
-
0
-

#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

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:c5be:bcff:bf30:9...–
dori0
Duch
29. 10. 2018   #11
-
0
-

#9 hluch

Žadna LED nebude svitit

Nahlásit jako SPAM
IP: 85.207.93.–
MilanL+1
Grafoman
29. 10. 2018   #12
-
0
-

#11 dori
chyba! 

v zadání máš 2LED jedna svítí, když je stisknuto druhá když není, alespoň tak je to v zadání.

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. 

Nahlásit jako SPAM
IP: 91.139.9.–
29. 10. 2018   #13
-
0
-

#12 MilanL
On si nezaložil nové vlákno. Je otázka nakolik původní zadání odpovídá jeho problému.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
29. 10. 2018   #14
-
0
-

#11 dori
jestli to není jako start ( tlač. 7) a stop (tlač. 0). Vůbec mi není jasné, jak jinak by se pak LED dostaly do stavu, kdy před stiskem tlač. 0 svítí.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
dori0
Duch
29. 10. 2018   #15
-
0
-


DDRF=0Xff;
DDRK=0X00;
PORTF=0XFE;
   while (1) 
if (PINK&)(1<<7))==0);
{PORTF|=(1<<0);
  PORTF&=~(1<<7);}
   
else{PORTF|=(1<<7)
PORTK&=~(1<<7);}
 

Nahlásit jako SPAM
IP: 85.207.93.–
Jerry
~ Anonymní uživatel
504 příspěvků
29. 10. 2018   #16
-
0
-

#15 dori
chuták dori .. fakt se trápí .. zastřelte jiněkdo :))))))))))

Nahlásit jako SPAM
IP: 109.81.214.–
dori0
Duch
29. 10. 2018   #17
-
0
-

#16 Jerry
Opravdu díky za pomoc Jerry :)

Nahlásit jako SPAM
IP: 85.207.93.–
MilanL+1
Grafoman
30. 10. 2018   #18
-
0
-

#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

Nahlásit jako SPAM
IP: 91.139.9.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Blikání — založil filip186

Blikani grafiky v C# — založil alois

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý