Uplynulo jen pár hodin a jsem tu zase. Původní program jenž jsem včera rozběhal, jsem chtěl doplnit o tlačítko a nějakou reakci segmentového displeje na něj. Program jsem postupně zjednodušoval, až na úplné minimum. Stejně ale nefunguje a mě vůbec není jasný proč. Zkusil jsem to s i bez aktivací pull-down odporu, jenž by se měla provádět posláním 1 na příslušný vstupní pin. Zkusil jsem to taktéž s i bez kondenzátoru. Zkusil jsem i jiný pin i port, taktéž bez úspěchu. Včerejší program funguje po opětovném nahrání bezproblémově, takže problém bude někde kolem nově přidaného tlačítka.
Zapojení tlačítka je provedeno 4 oranžovými propojkami.
Zapojení zdá se funguje:
- tlačítko je uvolněné => na pinu 28 PC5 je 5V vůdči GND
- tlačítko je stisknuté => na pinu 28 PC5 je 0V vůdči GND
Program je kratičký, tak ho dávám přímo sem
[code]’ Pokus s tlacitkem
'--------------------
$regfile = “m48def.dat” 'Definice mcu
$crystal = 8000000 'Definice kmitoctu krystalu
Config Portd = Output
Config Portc = Input
Portd.5 = 1 'Nastaveni pull-down odporu
Portd = 255 'Zadny segment nesviti
Do ’ Hlavni smycka
If Portc.5 = 0 Then 'Pokud je stisknuto tlacitko
Portd.8 = 0 ’ Zapni tecku
Portd.6 = 1 ’ Vypni segment G (prostredni)
Else ’ Pokud neni stisknuto tlacitko
Portd.8 = 1 'Vypni tecku
Portd.6 = 0 ’ Zapni segment G (prostredni)
End If
Waitms 200 ’ Pockej 200ms
Loop
[/code]
Program by měl fungovat následovně:
Pokud není tlačítko stisknuté:
- svítí segment G, což je prostřední příčka 8
- desetinná tečka je zhasnutá
Pokud je tlačítko stisknuté: - zhasne segment G
- rozsvítí se desetinná tečka
**ŘEŠENÍ**
Tak mě jeden chytrý člověk “nakop” a už jsem to už odhalil.
Místo
If portc.5 = 0 Then
tam má být
If Pinc.5 = 0 then
administrator: přejmenováno z “Neposlušné tlačítko - vyřešeno”
Tlacitko.rar (232 KB)