Stránka 1 z 2

PIC začátečnický problém "vstup ovlvnuje vystupy"

Napsal: 25 led 2009, 08:11
od Pavel Samek
Ahoj, začínám ze stavbou obvodu z PIC a nastal mě takový malý naočkovávaný problém. Mám jeden vstup na (PORTA.0) který zapne výstup na (PORTA.1) a pokd je zapnuty tak ho shodí. Přidělal jsem tam ještě jeden výstup který je nahozený stále (PORTA.2).

Problem:

Pokud stisknu tlačítko (PORTA.0) aktivují se všechny výstupy PORTA (teda pouze po dobu stisku)
Nevíte kde by mohl být problém, toto mě to dělá u všech jiných programů.



Schema zapojení : http://pandatron.cz/elektronika2/skolapic5.gif
prg:

Kód: Vybrat vše

LIST P=16F84A
   INCLUDE<P16F84A.INC>
   __CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC

#DEFINE   TLAC   PORTA,0      
#DEFINE   LED      PORTA,1      
#DEFINE   LED2   PORTA,2   

   BSF   STATUS,RP0
   MOVLW   B'00000001'
   MOVWF   TRISA
   BCF   STATUS,RP0

   BCF   LED
   BSF LED2

START   BTFSS   TLAC
   GOTO   $-1
   BSF   LED
   BTFSC   TLAC
   GOTO   $-1

   BTFSS   TLAC
   GOTO   $-1
   BCF   LED
   BTFSC   TLAC
   GOTO   $-1

   GOTO   START

   END

Napsal: 25 led 2009, 09:20
od eljaro
základem je simulace - program odsimulovat - pak teprver skoušet !
Ten kod nevypadá nijak vedle

dopň začátek o
org 00h
CLRF PORTA

snad to zabere !

a čkoliv to sice nic nevylučuje obyčejně se používa u výstupů jako aktivní úroven 0 a vstupů je tomu skoro vždy - tlačítko vstup ukostřuje a na vstupu je zvedací odpor ! aktivní stisk odpovídá nule pokud tomu chceš na opak - jak libo jen tam dej tedy nějaky odpor na zem jimž přikostříš vstup : a pokud ta 84 má vnitřní odpory byloby dobré je vypnout !

toliko ve skratce u snídaně

PS: omluvte pravopis !

Napsal: 25 led 2009, 17:56
od Pavel Samek
Zkoušel jsem přehodit logiku, tlačítko přizemňuje a pull-up odpor jde do +.
Výstup jsem také obrátil. A začalo to fungovat, teda jenom tato část. Tlačítko nahodí výstup a je-li nahozený tak jej shodí. ... Potom mnou přidávaná "funkce" stále sepnutého výstupu PORTA.2 ta se moc nedaří. Pokud LEDku odsud vyndám tak přestane fungovat tlačítko. Pokud je LEDka zapojená tak nesvítí (jak jsem si myslel) Při stisku tlačítka slabounce svítí. A když jsem zhasl světlo tak jsem viděl, že obě ledky v nečinnosti malinko mžouraj (v nečinnosti).

Napsal: 25 led 2009, 21:09
od Atlan
MAs to pripojene na dobrych pinoch ? Daj tu scemu pre istotu a procik mas blokovany 100n + nejaky kondik k tomu ?

Napsal: 26 led 2009, 07:11
od Chenzee
Ještě by mohl být problém v zákmitech tlačítka.

Napsal: 26 led 2009, 11:10
od Atlan
Takze bud sowtvarove riesenie alebo kondik 100n k tlacitku :)
len to stale neriesi to led2...

Napsal: 26 led 2009, 12:22
od Andrea
Pavel Samek píše:Zkoušel jsem přehodit logiku, tlačítko přizemňuje a pull-up odpor jde do +.
Výstup jsem také obrátil. A začalo to fungovat, teda jenom tato část. Tlačítko nahodí výstup a je-li nahozený tak jej shodí. ... Potom mnou přidávaná "funkce" stále sepnutého výstupu PORTA.2 ta se moc nedaří. Pokud LEDku odsud vyndám tak přestane fungovat tlačítko. Pokud je LEDka zapojená tak nesvítí (jak jsem si myslel) Při stisku tlačítka slabounce svítí. A když jsem zhasl světlo tak jsem viděl, že obě ledky v nečinnosti malinko mžouraj (v nečinnosti).

Máš v sérii s těma LEDkama odpory?

Napsal: 26 led 2009, 17:12
od hakamusai
Pavel Samek > Zkus sem hodit schéma

Napsal: 26 led 2009, 22:09
od Pavel Samek
Přikládám 3 různé druhy zapojení co jsem zkoušel. Ale nevyhovovalo ani jedno.

1 - Prvni dioda
Led D1 svítí slabě trvale, po dobu stiku tlačítka pohasne.
Led D2 nereaguje.

2, 3 -
PORTA.1 pracuje jak by měl podle stisku tlačítka
Není na první pohled vidět žádná změna. PORTA.2 Nesvítí. Pouze při připojení napětí krátce obě ledky probliknou. Pokud vyndám led D1 tak led D2 již neraguje na stisk tlačítka. Pak se musí odpojit od zdroje a znovu připojit D1.


Ani jedna varianta není to co bych se představoval

Napsal: 26 led 2009, 22:47
od Atlan
NO vyvod MCLR sa pripokjuje na vcc cez odpor napr 4k7 alebo 10k. DAj si kondik 100n co najbliszsie k napajacim vyvodom procika.

Napsal: 27 led 2009, 07:24
od Chenzee
Jaký tam máš diody a Ucc, odpory 1K3 mi nějak nesedí :nevim:

Napsal: 27 led 2009, 10:11
od Atlan
To tam mas vazne 100n na oscilator ? :) aky to ma takt 1 inst za 5min ?
Nemalo tam byt 100p

Napsal: 27 led 2009, 17:56
od Pavel Samek
Ahoj,

Stále kvoká, stále kvoká .... vyměnil jsem odpory u ledky (za 500R) jediný poruce. Přendal jsem 100n mezi + / - procesoru. Na původní místo oscilátoru jsem dal menší kondenzátor (ale zjistil jsem že to má stejný efekt jako když tam nic není) A pin MCLR je přes 10K rezistor a změny budete se divit žádný ...

Co teď, co potom?

Napsal: 27 led 2009, 18:29
od Atlan
A cim to programujes hardware software ?
a dufam ze to mas takto...

LIST P=16F84A
INCLUDE<P16F84A.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC


#DEFINE TLAC PORTA,0
#DEFINE LED PORTA,1
#DEFINE LED2 PORTA,2


org 00h

BSF STATUS,RP0
MOVLW B'00000001'
MOVWF TRISA
BCF STATUS,RP0

BCF LED
BSF LED2

START BTFSS TLAC
GOTO $-1
BSF LED
BTFSC TLAC
GOTO $-1

BTFSS TLAC
GOTO $-1
BCF LED
BTFSC TLAC
GOTO $-1

GOTO START

END

Napsal: 27 led 2009, 18:35
od Andrea
Zkus z programu vyhodit tu část s tlačítkem, nech jen to rozsvícení LED2 a pak za to dej nekonečkou smyčku, jestli se LED2 rozsvítí.