ATmega a smyčka while – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

ATmega a smyčka while – Mikrokontroléry – Fórum – Programujte.comATmega a smyčka while – Mikrokontroléry – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Palkic.89
~ Anonymní uživatel
8 příspěvků
24. 11. 2013   #1
-
0
-

Zdary, potřeboval bych poradit, mám atmegu16 a nedaří se mi rozchodit tuto děličku 1000 pomocí while, čítač TIMER0 běží na 1000 tikách za sekundu a while by měl dekrementovat z 1000 do 0 a pak inkrementovat proměnnou i čímž frekvence i bude 1 sekunda, avšak dekrementace z 1000 do 0 proběhne po restartu jen jednou a na hodnotě nula zůstane a již neběží odznova a mě by zajímalo proč už se znova nerozběhne. Podle kolegy je ten kód v pořádku...

unsigned int cekej, i=0;  

void main(void)    
  {  
        asm("sei");

        while (1)
          {  cekej=1000;
             while(cekej>0)
             i++;
             if(T>9999) i=0;   }
  }


ISR(TIMER0_OVF_vect) 
{
      if (cekej)
          cekej--;

      TCNT0=131;  // 1 kHz
}
Nahlásit jako SPAM
IP: 89.102.186.–
Reklama
Reklama
Palkic.89
~ Anonymní uživatel
8 příspěvků
24. 11. 2013   #2
-
0
-

#1 Palkic.89
if (i>9999) i=0;  sorry za překlep
 

Nahlásit jako SPAM
IP: 89.102.186.–
KIIV+42
God of flame
24. 11. 2013   #3
-
0
-

hledej klicove slovo    volatile

bez nej kompilator vyoptimalizuje promenne, ktere se uvnitr cyklu nemeni, protoze mysli ze jsou to konstanty co se nikdy nemohou zmenit...

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
KIIV+42
God of flame
24. 11. 2013   #4
-
-1
-
Mimo téma

#2 Palkic.89
+ nastavovat pokazdy TCNT kdyz existuje mod citace CTC, ktery to udela za tebe (resp on bude nulovat citac pri dosazeni nejake komparacni hodnoty)

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Palkic.89
~ Anonymní uživatel
8 příspěvků
24. 11. 2013   #5
-
0
-

#3 KIIV
Díky, to je přesně ono. :wink:

Nahlásit jako SPAM
IP: 89.102.186.–
Palkic.89
~ Anonymní uživatel
8 příspěvků
24. 11. 2013   #6
-
0
-

#4 KIIV
Režim CTC razantně odmítám, je složitý na nastavování a nikdy se mi ho nepovedlo rozběhnout podle představ. Overflow je jednoduchý.

Nahlásit jako SPAM
IP: 89.102.186.–
hlucheucho+10
Posthunter
24. 11. 2013   #7
-
0
-

Je složitý na nastavení?? Se mi nezdá, je to zápis do pár registrů.  A navíc je CTC přesnější, interval je čistě HW záležitost

hu

Nahlásit jako SPAM
IP: 188.95.60.–
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, 14 hostů

Podobná vlákna

Nekonečná smyčka — založil miguel

Nekonecna smycka — založil papen

časová smyčka — založil xp

Delphi 7 - smycka — založil Cola-loka

Smycka ve stored procedure — založil VladislavK

 

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