Použití resetu jako vstupu

Zdravím…
Poradí mi někdo, jak nastavit, aby se resetovací pin dal použít jako vstupní port? Konkrétně u 16F627… Zkoušel jsem normální nastavení v TRISA, ale to mi nějak nechce fungovat nebo dělám něco špatně. RA5 připojím přes rezistor proti kladnému napájení a vstup jako by aktivuji proti zemi, v programátoru nastavím interní reset.
Předem děkuji za odpověď… :smiley:

Ahoj

Chyba bude pravděpodobně nějaká maličkost - projdeme tedy společně vše, co je nutné udělat…

Předpokládám, nastavením interního resetu v programátoru, myslíš to, že nastavíš bit č. 5 v konfiguračním slově na hodnotu 0 (snad si to dobře pamatuji).

Dále v TRISA musíš mít na pozici č. 5 jedničku, příklad:

banksel TRISA movlw b'00100000' movwf TRISA banksel 0
Pokud není program příliš složitý, tak jej zkus simulovat v MPLABu a zjisti, jestli je v TRISA správná hodnota.

Tak tomuto popravdě nerozumím. Na port ve vstupním režimu nemusíš přece připojovat žádné rezistory.

Z tvé odpovědi je vidět že se musím ještě hodně učit… :smiley:

Tak k tomu nastavení:
nastavení v TRISA mám dobře, tím nastavením v programátoru jsem myslel, že v programu co obsluhuje programátor nastavím, že chci použít interní reset.
Napsal jsem si naposto triviální program jen proto, abych to vyzkoušel. Ten jen hlídá tlačítko a při stisku tlačítka tj. na vstupu se objeví log. 0, se rozsvítí LEDka. Při dalším stisku zase zhasne.
Při použití jakéhokoliv portu vše funguje tak jak má, ale když použiji RA5, tak to chodit nechce. Zkoušel jsem to simulovat i v MPLABu, ale výsledek byl stejný. Píšeš něco o nastavení bitu č. 5 v konfiguračním slově, můžeš mi trochu více vysvětlit co tím myslíš?

Jinak k těm rezistorům, byl jsem na tom, že u procesoru je to stejné jako u logických obvodů, kde každý vstup musí mít definovanou úroveň. Proto připojuji ke každému vstupu co využívám rezistor k opačné polaritě, než kterou procesor hlídá tj. chci aby mi něco procesor udělal, když je na vstupu log. 0, proto připojím na tento vstup přes rezistor log. 1.

Díky za odpověď…

To musíme všichni :smiley:.

Nevím jak ty, ale já když píšu program, tak začínám třeba takto:

list p=16F877A radix dec #include p16f877a.inc __config b'01100001110010'

Tím “__config” nastavím konfigurační slovo (v datasheetu hledej configuration word). Je to základní nastavení mikropočítače. Pokud jej správně nastavíš, tak už nemusíš nic nastavovat před programováním.

Nenapadá mě, v čem může být chyba. Zkus sem hodit celý program do code. O víkendu se na něj podívám…

Podle toho co jsi psal v prvním příspěvku, jsem nabyl dojmu, že vstup se snažíš nějak “vyrobit” nebo tak něco :slight_smile:. Teď už ti rozumím a máš pravdu. Pro jistotu přikládám obrázek, který jsem ti teď udělal, podle něhož si můžeš zkontrolovat zapojení. Nejčastěji se používá ten první, což je zapojení tlačítka v negativní logice (má nižší spotřebu). Hodnota rezistoru se nejčastěji volí mezi 1k až 10k.
tlacitka.jpg