adone79 Inserito: 14 marzo 2005 Segnala Inserito: 14 marzo 2005 vorrei programmare un pic 16f780 per acquisire la risposta indiciale di un filtro e ho iniziato a buttare giù dure righe di codice ( non è ovviamente completo , è solo la parte iniziale ) : ;acquisizione della risposta indiciale di un sistema lineare List p=16F870 ;Tipo di processore include "P16F870.INC";Definizione dei registri interni Contatore equ 0x20 ;Variabile per la temporizzazione org 0 goto inizio org 4 inizio BCF STATUS,RP1; si utilizzeranno solo il banco 1 ed il banco 0 MOVLW 0x00 TRIS PORTA ; la linea 0 della porta A è l'uscita tramite cui inviare il gradino MOVLW 0xFF TRIS PORTB ; la linea 1 della porta A è l'ingresso analogico tramite cui rilevare la risposta indiciale MOVLW 0b01000001; scegli la linea 1 per l'acquisizione (CHS0=1) e come tempo di acquisizione 8*Tosc MOVWF ADCON0 MOVLW 0b1000000; ADFM=1 significa che gli 8 bit meno significativi della conversione finiscono in ADRESL BSF STATUS,RP0 MOVWF ADCON1 MOVLW 0b00000001; invia il gradino ( da perfezionare, ad esempio sincronizzando con un comando esterno) MOVWF PORTA goto ciclo_attesa ciclo_attesa goto ciclo_attesa end e ricevo la seguente warning: Message[302] D:\DANIELE\PIC\PROGRA~2\ACQUIS~1\ACQUIS~1.ASM 23 : Register in operand not in bank 0. Ensure that bank bits are correct.Ma ADCON1 non sta nel bank1? E ponendo RP1=0,RP0=1 non seleziono quel banco? Perché ricevo quest'errore?Grazie a chiunque vorrà darmi una mano.
dlgcom Inserita: 14 marzo 2005 Segnala Inserita: 14 marzo 2005 il warning non e' un errore , il sistema ti ricorda solo di cambiara banco quando necessario.
adone79 Inserita: 14 marzo 2005 Autore Segnala Inserita: 14 marzo 2005 cioè mi segnala ogni registro che utilizzo al di fuori del banco 0?eppure mi sembra strano , perché prima di mettere BSF STATUS,RP0 mi dava comunque un messaggio e non un errore.
dlgcom Inserita: 14 marzo 2005 Segnala Inserita: 14 marzo 2005 il prg non riesce a capire se hai settato il banco giusto.Te lo dira' sempre ogni volta che lo usi. Per non far apparire questo warning devi inserireERRORLEVEL -302all'inizio del tuo programmaquesto disabilita i warn. 302.
adone79 Inserita: 14 marzo 2005 Autore Segnala Inserita: 14 marzo 2005 grazie mille del chiarimento, allora vado avanti a stendere il codice. Ciao, daniele
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora