Dobrý den přátelé, prosím Vás o pomoc:
Když má program v céčku:
void main (void)
{
PORTC=0x01;
DDRC=0x01;
PORTD=0x40;
DDRD=0x00;
while (1)
{
if ((PIND & 0x40) == 0)
PORTC |= 0x01;
else PORTC &=0xFE;
};
}
vše funguje správně, tlačítko a obvod zkrátka eliminuje zákmity tlačítka...
Pokud stisknu, dioda svítí, pokud sundám prst sz tlačítka, dioda nesvítí...
a
v bascomu:
$regfile = "m8def.dat"
' $crystal = 8000000
Config Portc = Output
Config Portd = Input
Tlacitko Alias Pind.6
Do
If Tlacitko = 0 Then
Waitms 300
Portc.1 = 1
Portc.0 = 1
Else
Portc.1 = 0
Portc.0 = 0 ' prodleva 500 msec
End If
Waitms 100
Loop
End
v tomto programu jsou jasně znatelné zákmity tlačítka...nechápu, v céčku vše funguje v pohodě, v bascomu vůbec....
nevím si rady, jak to v bascomu vyřešit, prosím Vás o pomoc....
Může být problém v tom, že v zapojení obvodu nepoužívám krystal? Dělám na ATmega8 ... že by v tomto bascom a céčko byly jiné?
Prosím Vás o radu
Fórum › Mikrokontroléry
Zákmit tlačítka : v céčku OK v bascomu KO
To petrsvetr : a kde mas v tom C tu eliminaci zakmitu? ja bych schvalne zkusil pri stisknuti tlacitka ten vystup prepnout na druhou uroven... jednou stisk rosviti a druhej zhasne a takhle dokola... pak teprve uvidis jak moc dobre se zbavuje kod tech zakmitu...
nebo jeste lepe pripocitavat 1 a zobrazovat celej byte... pak je jeste mnohem lepe poznat jestli je nebo neni zakmit...
kazdopadne v tom kodu v C nic takovyho jako odstraneni zakmitu vubec nevidim
V tom C právě není žádná eliminace zákmitu...
a přesto se LED rozsvítí pouze pokud zmáčku tlačítko a zhasne, pokud pustím tlačítko.....
a v tom bascomu se úplně jasně projevuje zákmit tlačítka..
právě to nechápu...
že u každého jazyka se to chová jinak, to by přece nemělo mít vůbec vliv...programové prostředí....
A musím mít zapnutý v obvodu krystal? Dělám vše bez něj, je to tak taky možné provádět, testovat a zapojovat?Bez krystalu?
Nemá krystal na zákmit vliv?
Děkuji KIIV
To Anonymní uživatel : neni potreba obvod krystalu
neprojevuje se to protoze to jen nestiha oko videt... kdyz bys ty stisky pocital hned bys videl jak jeden stisk udela desitku pripocteni ...
jeden ze zpusobu eliminace je ze kdyz zjistis stisk tlacitka tak pockas aspon 10ms a pak otestujes zda je jeste stale stisknute
a pokud je tak teprve neco udelas...
Zakmitom myslis ze ti blika LED-ka ?
Ano, zákmitem myslím to, že mi bliká ledka.... i když nezmáčknu tlačítko....
A co myslíte s tím krystalem....můžu testovat a zapojovat čip bez něj?
Nezpůsobuje tyto chyby krystal...respektive to, že ho nepoužívám?
Tak mám tento program: když ho zkusím v simulátoru, vše krásně funguje, jakmile ho nahraju do čipu, LEDKY blikají jak pomatené.... prosím POMOOOOOC
$regfile = "m8def.dat"
Config Portc = Output
Config Portd = Input
Tlacitko Alias Pind.6
Do
If Tlacitko = 0 Then
Waitms 10
If Tlacitko = 0 Then Gosub Navesti3
Else
Portc.1 = 0
Portc.0 = 0
End If
Loop
Navesti3:
Portc.1 = 1
Portc.0 = 1
Return
Niesom si isty na 100% , ale myslim ze ten program sa ti stale resetuje, t.j. ze skonci a zacne od zaciatku, a ty pridelusej zasa stavy na piny, takze vlastne ti ledska stale blika, skus pozret ten kod, alebo ho prerobit
Na pinu s tlačítkem musí být pull-up:
Config Portc = Output
Config Portd = Input
Portd.6=1
Tlacitko Alias Pind.6
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Více PWM výstupů v Bascomu ?? — založil Zdeněk
Projekty v cecku — založil jaelisa
Cyklus v Cécku — založil DaN
Nový web o Céčku — založil Tomáš
Nový web o Céčku — založil Elver
Moderátoři diskuze