prerobenie programu pre atmega8
Moderátor: Moderátoři
prerobenie programu pre atmega8
program je v tejto teme http://www.ebastlirna.cz/modules.php?name=Forums&file=viewtopic&t=67064
dakujem
Takže třetí stisk tlačítka musí přijít až po pauze, až odpadne relé R2. Pokud přijde dřív tak R2 zůstane přitažené a program skončí. Na další mačkání tlačítka nereaguje.
Na proteus se vykašli, zapoj tlačítko, místo relé dej ledky a zkoušej v reálu.
U procesoru dej blokovací kondík aspoň na napájení.
Přikládám kód pro mega8.
- Přílohy
-
temp1.zip- (713 bajtů) Staženo 283 x
Kód: Vybrat vše
$regfile = "m8def.dat"
$crystal = 1e6 '1MHz
$hwstack=40
$swstack = 16
$framesize = 32
'konfigurace výstupů
Config Portb.1 = Output
Config Portb.2 = Output
'výstupům přiřadíme jméno
Rele_1 Alias Portb.1 'vystup1
Rele_2 Alias Portb.2 'vystup2
'konfigurace vstupů
Config Pinb.3 = Input 'tlačítko
Portb.3 = 1 'nastavit pull-up
'vstupum přiřadíme jméno
Tlacitko Alias Pinb.3
Const On = 0 '0 - aktivní v L , 1 - aktivní v H
Const Off = 1
Rele_1 = Off
Rele_2 = Off
Dim Klik As Byte
'------------------------------------------------------------------
Do
Debounce Tlacitko , 0 , Key , Sub 'kontrolujeme tlačítko
Loop
Key:
Incr Klik 'zvýšíme počítadlo stisků
Select Case Klik
Case 1
Rele_1 = On 'první stisk - zapneme rele 1
Case 2
Rele_2 = On 'druhý stisk zapneme rele 2
Wait 2 'počkáme třeba 2 sekundy
Rele_2 = Off 'vypneme rele 2
Case 3
Rele_1 = Off 'třetí stisk - vypneme rele 1
Klik = 0 'vynulujeme počítadlo stisků
End Select
Return
End 'end program
'(
první_stisk: sepne rele_1
druhý_stisk: sepne rele_2 na 5sec a vypne rele_2
třetí_stisk: vypne rele_1
')