Portál AbcLinuxu, 7. května 2025 14:43

Dotaz: AVR z řady attiny - umí obsluhovat více výstupů najednou?

21.9.2008 19:56 multithread
AVR z řady attiny - umí obsluhovat více výstupů najednou?
Přečteno: 1100×
Odpovědět | Admin
Ahoj, právě začínám s těmito mcu a zatím jsem dokázal naprogramovat řízení jasu u 5 led, ale pouze na každé zvlášť tím, že nastavuju delay_us. Nepoužívám pwm v jednočipu, protože to by asi nezvládlo obsloužit 5 výstupů. Umí tento jednočip zpracovávat víc vláken najednou? Tzn. že na prvním výstupu bude blikat určitou frekvencí ledka, na druhém bude zrovna řízení jasu a na třetím zas něco jiného?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.9.2008 20:24 Dragst
Rozbalit Rozbalit vše Re: AVR z řady attiny - umí obsluhovat více výstupů najednou?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jednocip samozrejme zadna vlakna neumi,ale muzes si "pseudovlakna" naprogramovat,napr.pomoci preruseni od casovace. Ale pro ucel ktery popisujes bych spise pouzil jednu smycku,kde se bude pocitat ,ktera led ma v danem okamziku svitit a ktera ne, a zapisovat vysledek na branu ,na ktere jsou led poveseny. Osvedceny algoritmus je napr. pouzit promennou typu char, ktera se bude stale inkrementovat a pro jednotlive led ji porovnavat s pozadovanou svitivosti [0..255].Pokud je inkrementovana promenna vetsi nez promenna patricne led, nastavit bit, jinak vynulovat... napr. . Metod je spousta. Hlavni je se oprostit od PC pristupu :-) ,pak uz to pujde samo.
27.9.2008 19:35 sharkus | Ostrava
Rozbalit Rozbalit vše Re: AVR z řady attiny - umí obsluhovat více výstupů najednou?
Odpovědět | | Sbalit | Link | Blokovat | Admin
s predhozim prispevkem mohu akorat souhlasit. mimichodem pokud ten tvuj program po vetsinu casu jenom ceka tak toho take muzes vyuzit pro rizeni toho pwm tim ze v cekaci smycce stale volas funkci obstaravajici to pwm. Jinak takova menci ukazka jak nato:
void pwm (pwm1,pwm2,pwm3)
{
   unsigned char smycka = 0x00;
   LED1 = zapni;
   LED2 = zapni;
   LED3 = zapni;
   while(0xFF - smycka)
   {
      smycka++;
      if(pwm1 == smycka) 
      {
         LED1 = vypni; 
      }
      if(pwm2 == smycka)
      {
         LED2 = vypni; 
      }
      if(pwm3 == smycka) 
      {
         LED3 = vypni; 
      }
   }
   smycka = 0x00;
}
pouziti teto funkce v prikladu muzes nalezt na rgb lampicka samozrejmne moznosti je spousta jen se trochu zamyslet. Jinak na netu se dokonce daji stahnout "operacni systemy" pro avr-ka kde lze jiz vlakna pouzivat, ale proc to prece komplikovat. Tak hodne zdaru pri softeni ;-)

            
"A proc to vlastne delate?" - "Protoze muzeme!"
27.2.2009 16:20 xurpha
Rozbalit Rozbalit vše Re: AVR z řady attiny - umí obsluhovat více výstupů najednou?
Odpovědět | | Sbalit | Link | Blokovat | Admin

http://www.mikrocontroller.net/articles/Soft-PWM
http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM#PWM_in_Software

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.