Rotační enkodér – Mikrokontroléry – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Rotační enkodér – Mikrokontroléry – Fórum – Programujte.comRotační enkodér – Mikrokontroléry – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Wilik
~ Anonymní uživatel
2 příspěvky
11. 7. 2013   #1
-
0
-

Dobrý večer.

Před pár jsem si napsal svůj první prográmek, kde jsem začal blikat diodou. Potom jsem zkusil tlačítka, přerušení a trošku časovače.
No nyní jsem si koupil rotační enkodér, že si s sním zkusím pohrát, ale mám problémy.

Program nic nedělá. :-D

Má to fungovat takto. Rotařním enkodérem nastavuji proměnnou encoder (0-9999) a tuto proměnnou zobrazuji na LCD. (k obsluze LCD zatím používám cizí knihovnu, na to se teprve chystám).

No a problém je, že hodnota encoder se mi nějak nehýbe. :-D

Jako MCU je použit ATmega8A s taktem 16MHz.

//ratační enkoder (vlevo/vpravo) ======= PD2 & PD4
ISR (INT0_vect)   {
   if (((PIND & (1 << PD2)) == 0x00) && (encoder < 9999)) encoder = encoder + 1;      //inc
   if (((PIND & (1 << PD2)) == (1 << PD2)) && (encoder > 0 )) encoder = encoder - 1;      //dec
    }

encoder je připojen na piny:
PD2 (INT0) = encoder A
PD4 = encoder B

Nahlásit jako SPAM
IP: 89.102.184.–
Reklama
Reklama
Wilik
~ Anonymní uživatel
2 příspěvky
11. 7. 2013   #2
-
0
-

Tak po pár hodinách namáhavé práce    se dostavil výsledek.

ISR (INT0_vect)	{	//ratační enkoder (vlevo/vpravo)

   if ((PIND & (1<<PD2))) {
      if ((PIND & (1<<PD4))) encoder++;   // B nástupní hrana
      else encoder--;                  // B sestupní hrana
   }
     
   else {
      if ((PIND & (1<<PD4))) encoder--;   // B nástupní hrana
      else encoder++;                  // B sestupní hrana
   }
}
Nahlásit jako SPAM
IP: 89.102.184.–
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, 6 hostů

 

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