Vai al contenuto
PLC Forum


Macro In Assembler Per Pic 16f84


karlooie

Messaggi consigliati

Mi sto avvicinando alla programmazione di un pic 16f84, con risultati che promettono abbastanza bene.. mi chiedevo se supporta le macro..

tipo:

impulso macro ms

bsf PORTB, 4 ; segnale alto

loop call delay ; ripete la subrutine delay che gira a vuoto per 1 millisecondo

dcfsz ms ; per 'ms' volte

goto loop ;

bcf PORTB, 4 ; segnale basso

richiamata così

nell'interrupt di TMR0:

org 0x04

impulso 23 ;impulso di 23 ms su PB4

può funzionare?

la userei per generare un'onda quadra su PB4.. il programma senza utilizzare la macro funziona, ma modificato non da lo stesso risultato..

un buon simulatore per provare i programmi su pc?

Link al commento
Condividi su altri siti


L'ambiente MPLAB gestisce le macro, ma nel tuo caso penso che sia piu' comodo trasformare la tua routine in una subroutine.

Per passare il valore lo carichi in W prima di chiamare la sub "impulso"

Segue come potrebbe essere il tuo prg.

Ricordo sempre di salvare i registri piu' importanti quando inizi una gestione di interrupt

richiamata così
nell'interrupt di TMR0:


org 0x04

movlw  .23; carichi in W il valore che vuoi passare alla sub
CALL impulso;impulso di 23 ms su PB4
------------------------------------------------------------------------------------------
impulso; nome subroutine

MOVWF  ms; carichi in ms il valore che vuoi
bsf PORTB, 4; segnale alto 
loop call delay; ripete la subrutine delay che gira a vuoto per 1 millisecondo
dcfsz ms; per 'ms' volte
goto loop;
bcf PORTB, 4; segnale basso
RETURN

un buon simulatore per provare i programmi su pc?
Link al commento
Condividi su altri siti

grazie dlgcom..

in effetti è molto più semplice così..

io sto usando mplab, per il simulatore vado su debugger->select tool..->mplab sim (l'unico abilitato oltre mplab ice 2000 che pero non si carica con un errore strano)..

ma non riesco a impostare i valori di (p.es portb) per gli input..

da 'watch' riesco a settare moltissimi valori (p.es tmr0 e variabili definite da me..) ma non mi lascia modificare portb/porta.. mi sai dire qualcosa? grazie ancora!

Link al commento
Condividi su altri siti

Per poter impostare dei valori o simulare delle entrate devi usare la funzione STIMULUS che trovi nel menu Debugger , dopo che hai selezionato il MPLAB SIM.

Con questa funzione puoi simulare tutte le entarte del tuo programma .

per modificare valori e registri puoi usare anche la vinestra dei registri che trovi in View - File register-

Clicchi due volte sopra il valore e lo modifichi ....

Saluti

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...