Problemi con la porta A

12 Anni 2 Mesi fa - 12 Anni 2 Mesi fa #1 da plastikino
Problemi con la porta A è stato creato da plastikino
Salve sul mio circuito ho impostato la porta a come ingresso di una tastiera solo che non riesco a leggere il segnale che proviene dai tasti.



questo codice codice dovrebbe leggere lo stato dei tasti e accendere dei led sulla porta d


movwf salva ;salvo il contenuto del registro W
movff LATA,pulsanti
rrncf pulsanti
; movlw 0xf
; andwf pulsanti


; movlw 4
; CPFSGT contatore
; movlw 8
bsf LATD,0
movff pulsanti,LATD


;su questo invece inizializzo la prota a "copiato dal data sheet"

CLRF PORTA ; Initialize PORTA by
; clearing output
; data latches
CLRF LATA ; Alternate method
; to clear output
; data latches
MOVLW 0Fh ; Configure A/D
MOVWF ADCON1 ; for digital inputs
MOVLW 07h ; Configure comparators
MOVWF CMCON ; for digital input
MOVLW 0x1e ; Value used to
; initialize data
; direction
MOVWF TRISA ; Set RA<1:4> as inputs
Ultima Modifica 12 Anni 2 Mesi fa da plastikino.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • plastikino
  • New Member
  • New Member
Di più
12 Anni 2 Mesi fa - 12 Anni 2 Mesi fa #2 da Pinna
Risposta da Pinna al topic Re: Problemi con la porta A
Ciao, non conosco l'assembler e neanche il tipo di microcontrollore che stai usando per le tue prove ma provo a dire una scemenza: hai impostato gli ingressi come digitali e non come analogici?


EDIT: scusami, era proprio una scemenza: ho visto adesso nel codice assembler l'istruzione che dovrebbe impostarli come digitali...

Chi vola vale, chi vale vola, chi non vola è un vile
Ultima Modifica 12 Anni 2 Mesi fa da Pinna.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Pinna
  • Avatar di Pinna
  • Moderator
  • Moderator
Di più
12 Anni 2 Mesi fa #3 da plastikino
Risposta da plastikino al topic Re: Problemi con la porta A
haha capita..
il pic che utilizzo e un 18f4550 lo stesso del Freedom II.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • plastikino
  • New Member
  • New Member
Di più
12 Anni 2 Mesi fa #4 da nadalp00
Risposta da nadalp00 al topic Re: Problemi con la porta A
Ciao, la mia domanda è: riesci a compilare lo stesso codice in C?

perchè altrimenti ti basterebbe o testare un i sigoli bit, ad esempio:

if (PORTAbits.RA0==0)
{
........
}

oppure controllare tutti gli ingressi assieme ed agire di conseguenza, ad esempio:

//dichiari una variabile a 8 bit
usigned char Maschera;

//ipotiziamo che ti interessa RA0 RA1 RA2 RA3
//allora definisci
Maschera = 0b00001111;

//ora non fai altro che fare un AND tra la tua maschera e gli ingressi e scopri cosi il tasto premuto

Maschera = Maschera & PORTA;

e il gioco è fatto....

se invece ti serve in ASM mi dispiace è da un pochino che non ci lavoro e non riesco ad aiutarti.

buon lavoro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • nadalp00
  • New Member
  • New Member
Di più
12 Anni 2 Mesi fa #5 da plastikino
Risposta da plastikino al topic Re: Problemi con la porta A
grazie nadalp00
il tuo messaggio mi ha aperto la mente, l'errore che mi sfuggiva proprio era leggevo dal registro LATA invece per la lettura si usa il registro PORTA piccoli errori che fanno perere ore per cercare di capire.

siccome leggo da A1:A4 bisogna spostare i ìl byte verso destra con la successiva operazione
rrncf pulsanti

la maschera che mi suggerisci la avevo già implementata solo che era disabilitata
; movlw 0xf
; andwf pulsanti

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • plastikino
  • New Member
  • New Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login