Pouze svit diody v ATmega8 – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pouze svit diody v ATmega8 – Mikrokontroléry – Fórum – Programujte.comPouze svit diody v ATmega8 – Mikrokontroléry – Fórum – Programujte.com

 

bony
~ Anonymní uživatel
9 příspěvků
29. 11. 2008   #1
-
0
-

Dobrý večer, prosím Vás o radu:

Mám tento program, který má pouze svítit s diodou, ne blikat, pouze svítit.
Nefunguje mi to, poradí mi prosím někdo?

#include <avr/io.h>
void delay(unsigned int num)
{
unsigned int i,j;
for (j = 0; j < 1000; j++)
for (i = 0; i < num; i++)
;
}

int main (void)
{
DDRB == _BV(PB0); // DDR = "Data Direction Register"

PORTB == ~(_BV(PB0));
}


Děkuji
bony

Nahlásit jako SPAM
IP: 77.48.5.–
netman920
Super člen
29. 11. 2008   #2
-
0
-

a teraz to nesvieti ci blika,?

Nahlásit jako SPAM
IP: 87.244.226.–
bony
~ Anonymní uživatel
9 příspěvků
29. 11. 2008   #3
-
0
-

NETmane, ahoj, děkuji....

no...nedela to nic, nesviti, neblika, nic...


tento program mi blika s diodou, to je ok:
#include <avr/io.h>

void delay(unsigned int num)
{
unsigned int i,j;
for (j = 0; j < 1000; j++)
for (i = 0; i < num; i++)
;
}

int main (void)
{
DDRB |= _BV(PB0); // DDR = "Data Direction Register"

while (1)
{
PORTB &= ~(_BV(PB0));
delay(500);

PORTB |= _BV(PB0);
delay(500);
}

return 0;
}




ale jak to udelat, aby dioda jen a stale svitila, prosim moc moc o Radu.....

dekuji

Nahlásit jako SPAM
IP: 77.48.5.–
netman920
Super člen
29. 11. 2008   #4
-
0
-

no skus to zapojit bez procesora...
ale nie skus odtial vyhodit to delay alebo jedno s tychto 2riadkov

PORTB &= ~(_BV(PB0));

delay(500);

PORTB |= _BV(PB0);
delay(500);

neviem ktory presne aspon si teda myslim
alebo teda skus ten delay nastavit na 10 malo by to blikat tak rychlo ze by si to ani nemal vidiet

Nahlásit jako SPAM
IP: 87.244.226.–
bony
~ Anonymní uživatel
9 příspěvků
29. 11. 2008   #5
-
0
-

s tim delay ano, ale neni to profi, ted zkousim neco jako:
#include <avr/io.h>

void stop()
{
while (1);
}

void main()
{

_BV(PB0)==0xFE;
stop();

}

ale nejde to, i kdyz vyndam jeden z tech radku, tak to nejde....chjo

Nahlásit jako SPAM
IP: 77.48.5.–
netman920
Super člen
29. 11. 2008   #6
-
0
-

ja som to myslel tak ze vymaz najskvor delay
a potom bud toto:

PORTB &= ~(_BV(PB0));


delay(500);

alebo toto
PORTB |= _BV(PB0);

delay(500);


ak nie tak uz fakt neviem

Nahlásit jako SPAM
IP: 87.244.226.–
aa
~ Anonymní uživatel
1 příspěvek
30. 11. 2008   #7
-
0
-

 DDRB == _BV(PB0); // DDR = "Data Direction Register"


PORTB == ~(_BV(PB0));

Zásadní chyba je, že používáte operátor porovnání (==) místo přiřazení (=).

Nahlásit jako SPAM
IP: 217.115.249.–
bony
~ Anonymní uživatel
9 příspěvků
30. 11. 2008   #8
-
0
-

Tak, teď jsem zkoušel tento program:
a nic se neděje..dioda nesvítí i když jsem upravil == na =

Prosím o raduuuu

#include <avr/io.h>

void stop()
{
while (1);
}

void main()
{
DDRB |= _BV(PB0);

PORTB = 0xFE;
stop();

}

Nahlásit jako SPAM
IP: 77.48.5.–
bony
~ Anonymní uživatel
9 příspěvků
30. 11. 2008   #9
-
0
-

Tak, už to funguje, bylo to nastavením optimalizace z O2 je teď 01 v makefile a jede to jako po masle...dekuji vsem za pomoc

Nahlásit jako SPAM
IP: 77.48.5.–
technik160
Newbie
1. 1. 2009   #10
-
0
-

To bony : super ze ti to ide ale ak pouzivate ten program hore tak to mate zbytocne komplikovane asi by stacilo iba:

#include <avr/io.h>

int main (void)
{
DDRC |= (1 << PC0); //nastavenie output portu PortC 0

for (;;) {

PORTC |= (1 << PC0); // vysle na portC log. 1

}
return 0;
}

tento program zabere urcite menej pamate ako ten vas a kludne by nemusela byt pouzita nekonecna slucka s pouzitim for(;;) ... ak to ma len svietit. Ale to len taky dodatok k tejto teme.

Nahlásit jako SPAM
IP: 91.127.196.–
Karan
~ Anonymní uživatel
2 příspěvky
10. 3. 2009   #11
-
0
-

Ahoj,

řeším podobný problém, diodě se nechce blikat :).

Používám čip atmega16, který mám s napájením napojený na avr-dragon.

Budu rád, když mě s tím někdo poradí, ale daleko raději bych byl, kdyby mě někdo nasměroval na nějaké stránky(i zahraniční), nebo doporučil v hodnou literaturu, doma mám knížky ben(C pro mikrokontrolery, práce s mikrokontrolery atmel avr ATmega16 a popis procesorů a instrukčních souborů), ale je to jako, kdybych je začal číst od zadu. V Cčku se dobře pohybuju, ale co se týče přístupu k mikrokontroleru, nevím o tom vůbec nic (co je todle: &= ~ a |= _).
Jsem ztoho velmi nervní, nikde jsem nedokázal najít informace, které by mě pomohli se dál pohnout, mořím se s tím více než měsíc a jenom připojení bylo pro mě velkým problémémem. Kdyby byl někdo ochotný mě věnovat chvilku času, tak tady přikládám icq: 224284590.

Tady je kód:
#include <avr/io.h>

void delay(unsigned int num)
{
unsigned int i,j;
for (j = 0; j < 1000; j++)
for (i = 0; i < num; i++)
;
}

int main (void)
{
DDRB |= _BV(PB0); // DDR = "Data Direction Register"

while (1)
{
PORTB &= ~(_BV(PB0));
delay(500);

PORTB |= _BV(PB0);
delay(500);
}

return 0;
}

Mockrát díky.

Nahlásit jako SPAM
IP: 82.208.57.–
Karan
~ Anonymní uživatel
2 příspěvky
10. 3. 2009   #12
-
0
-

Už mi to funguje, můj broblém byl v OPTIMALIZACI. Postupoval jsem podle tohoto návodu: http://www.mp222.wz.cz/Avrstudio/Avrstudio_C.htm. A problém odstranil zrušením optimalizace(nastavení na: -O0).

Nahlásit jako SPAM
IP: 82.208.57.–
KIIV
~ Moderátor
+43
God of flame
10. 3. 2009   #13
-
0
-

To Karan : no to uz bych asi spis pouzil nejakej citac nebo watchdog a mezi tim procesor uspal.. po preruseni nebo preteceni wdt by se zase dal spustil :)

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
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

Atmega8 časovač2 — založil Pavol007

 

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