AVR -prellmentesites (szoftware problema)

safi safi at externet.hu
Thu May 10 13:07:46 CEST 2007


Szia!

Prellmentesíts szoftverbol !
Pl.:
- elso élváltozásra végrehajtani a funkciót, majd valamennyi ideig nem 
figyelembevenni az élváltozásokat (100-200 ms-ig) Így rögtön bill. 
lenyomásra muködik a dolog.

- elso élváltozáskor érzékeled a bill. lenyomását, x ideig nem vizsgálod a 
bill.-ut (50-200 ms), majd megint megnézed, és vársz a felengedésre. Ha 
felengedték, akkor végrehajtod a funkciót. Így bill. felengedésekor fog 
muködni.


(Egyik esetben sem kell kondi.)
Természetesen elképzelheto még bármilyen más megoldás is.(hardveres is 
nagyon sokféle !)

safi



----- Original Message ----- 
From: "Pal Lukacs" <ekegep at yahoo.com>
To: <elektro at tesla.hu>
Sent: Thursday, May 10, 2007 12:52 PM
Subject: AVR -prellmentesites (szoftware problema)


> Sziassztok!
>
> Egy pici segitseget szeretnek kerni Toletek.
>
> Epitettem egy nixie orat.
> ATmega8 PORTD: 0-4 bitjet hasznalom bemenetnek,ezeken van 5 
> nyomogomb,amelybol ketto az INT0 -es INT1 -en van.Ezek a +- 
> nyomogombok.Mindegyik gomb belso felhuzoellelallassal van es 10uF 
> prellmentesitessel.
> A PORTD 5,6,7 biteket MUX vezerlo biteknek hasznalom.
>
> A kondenzatoros prellmentesites ellenere oriasi a prell.(az orat 
> keptelenseg beallitani)
> Probalkoztam 47uF kondival is.Mivel gombnyomaskor (L szint) van az 
> INTerrupt,mikor a nyomogombot elengedem,akkor egy kis ideig nincs prell 
> aztan kezdenek szaladni a kijelzon a szamok.
> Ekkor jottem ra hogy a gond szoftverhiba.A MUX vezerlo kodreszlet valt ki 
> INTerruptokat mivel ugyanazon porton vannak a nyomogombok es a MUX,igy 
> valami osszeakad.
> Probalkoztam mar biteltolasos,es -vagy mindefele modszerekkel,eredmeny ua.
>
> Jelenlegi MUX vezerlo kodreszletet beszurom:
>
> main()
> {
> ...
> for (;;)
>     {
>       if (cnt1 == THRESHOLD)    //4ms
>     {
>       cnt1 = 0;
>       //wdt reset
>       __asm__ __volatile__ ("wdr");    //reset WDR
>
>       if (nixie > 3)
>         {
>           nixie = 0;
>         }
>       //mux
>       //csovek jobbrol-balra 0-3ig.
>       switch (nixie)
>         {
>           case 0:
>           PORT_DATA_OUT = perc % 10;    //0. csonek adat
>           PORT_MUX_AND_BUTTONS = 0x1F;    //elozo MUX vezerlo biteket 
> toroljuk; -->
>           // 0. cso anod kapcsolva.
>           break;
>           //1. cso
>         case 1:
>           PORT_MUX_AND_BUTTONS = 0xFF;    // mindegyik cso kikapcs
>           PORT_DATA_OUT = perc / 10;    //1. csonek adat -> katod testre
>               PORT_MUX_AND_BUTTONS &= 0x3F;     //port:5-7.bit: 5.bit H; 1 
> cso anod bekapcs
>           break;
>           //2.cso
>         case 2:
>               PORT_MUX_AND_BUTTONS = 0xFF;
>           PORT_DATA_OUT = ora % 10;        //2. csonek adat
>               PORT_MUX_AND_BUTTONS &=0x5F;    //port:5-7.bit : 6. bit H; 
> 2. cso anod bekapcs
>           break;
>           //3.cso
>         case 3:
>               PORT_MUX_AND_BUTTONS = 0xFF;
>           PORT_DATA_OUT = ora / 10;    //3. csonek adat
>               PORT_MUX_AND_BUTTONS &=0x7F;    //port:5-7.bit : 5.-6. bit 
> H; 3. cso anod bekapcs
>           break;
>         }
>       nixie++;        //kovetkezo cso.
>    }
>   }
>  }
>
>
> Segitsegeteket elore is koszonom!
>
>
> ---------------------------------
> Ahhh...imagining that irresistible "new car" smell?
> Check outnew cars at Yahoo! Autos.
> -----------------------------------------
>          elektro[-flame|-etc] 



More information about the Elektro mailing list