ho scritto qualche riga di codice per comandare un' uscita nei tre stati
comandata da tre ingressi.
A seconda di che ingrsso va alto, l'uscita la dovrei mandare alta , bassa, o in alta impedenza.
ho provato con un simulatore , simulide-0.4.14 ma non si comporta come mi aspettavo.
Sbaglio io o il simulatore ha un bug? posso vedere i registri PORTA TRISA e sembrano giusti, ma i led non si accendono e spengono come mi aspettavo se mando alto uno alla volta i tre ingressi con sequenze diverse.
I led sono collegati in antiparallelo tra RA7 e il centro di un partitore (con due R da 220 ohm) collegato tra 5V e massa in modo da avere 2,5V
ingressi:RA4 RA5 RA6
uscita RA7
sequenza 1:mando alto uno alla volta
1) RA6
2) RA5
3) RA4
i led FUNZIONANO come previsto
1)spenti(RA7 hi-Z)
2) led acceso (RA7 L)
3) led acceso (RA7 H)
sequenza 2:mando alto uno alla volta
1) RA5
2) RA6
3) RA4
i led NON funzionano come previsto
1) led acceso (RA7 L)
2) spenti(RA7 hi-Z)
3) led acceso (RA7 L) <?????
;SET pin RA6 high , low , hiZ
;ver. 25/03/2021
;05h = address GPIO
list p=16f628a ;list directive to define processor
#include "p16f628a.inc" ;processor specific variable definitions
START
banksel PORTA
CLRF PORTA ;Initialize PORTA by
;setting
;output data latches
MOVLW 0x07 ;Turn comparators off and
MOVWF CMCON ;enable pins for I/O
;functions
banksel TRISA
movlw b'01110000' ; PORTA 0111 0000 (output pin 3,15,16) input PORTA (pin 17,18,1,2,4 )
movwf TRISA
LABEL_RA7_H ; test RA4
banksel PORTA
btfss PORTA, 4 ;if RA4 = H set PORTA
goto LABEL_RA7_L ;else test RA5
; set PORTA
banksel TRISA
bcf TRISA, 7 ;RA7 = out
banksel PORTA
bcf PORTA, 0 ; RA0= L
bcf PORTA, 1 ; RA1= L
bsf PORTA, 2 ; RA2= H
bsf PORTA, 7 ; RA7= H
LABEL_RA7_L ; test RA5
banksel PORTA
btfss PORTA, 5 ;if RA5 = H set PORTA
goto LABEL_RA7_hiZ
; set PORTA
banksel TRISA
bcf TRISA, 7
banksel PORTA
bcf PORTA, 7 ; RA7= L
bsf PORTA, 0 ; RA0= H
bcf PORTA, 1 ; RA1= L
bcf PORTA, 2 ; RA2= L
LABEL_RA7_hiZ
banksel PORTA
btfss PORTA, 6 ;if RA6 = H set PORTA
goto LABEL_TRESTATI
; set PORTA
banksel TRISA
bsf TRISA, 7
banksel PORTA
bcf PORTA, 0 ; RA0= L
bsf PORTA, 1 ; RA1= H
bcf PORTA, 2 ; RA2= L
bsf PORTA, 7 ; RA1= H
clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
rcc.roberto: Gli ingressi hanno una resistenza verso massa?
hanno ogni uno la resistenza a massa ,
provato
goto LABEL_TRESTATI
stesso problema
clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
acilde
postato il: 03.04.2021, alle ore 19:02
interessante con un simulatore diverso sarebbe vedere se è simulide che ha un bug, qualcuno, per piacere, potrebbe fare una simulatina al codice ?
clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
caccamo2
postato il: 03.04.2021, alle ore 19:28
prova nel mondo reale, i simulatori di microcontrollori non sono affidabili
...
acilde
postato il: 06.04.2021, alle ore 13:54
Schema del circuito ecco il link
clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
acilde
postato il: 06.04.2021, alle ore 14:00
Attenzione:
quello postato sopra è quello che sembra funzionare con il nuovo firmware
e ha dei collegamenti diversi.
clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
acilde
postato il: 06.04.2021, alle ore 14:15
QUESTA
si riferisce al codice scritto sopra ( che postandolo si è perso i TAB...)
clikka sulle mie stelline per vedere i miei progetti
I motori di ricerca sono tuoi amici( G0o9\e non proprio...) , usarli prima di chiedere non sarebbe male.
La terra è l'aereo che ci trasporta nel cielo
ma dal quale non possiamo scendere (almeno per ora) , perchè danneggiarlo?
primok
postato il: 06.04.2021, alle ore 17:56
Il tuo codice provato con proteus funziona.
Più piccola è la mente più grande è la presunzione.
Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito