Pull-down rezistor a tlačítko - nefungující kód - vyřešeno

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

:arrow_right: administrator: přejmenováno z “Neposlušné tlačítko - vyřešeno”
Tlacitko.rar (232 KB)