Programmare in mikroBasic PRO
 
  Box pubblicitario
Usare la finestra debug in
mikroBasic PRO

Vedere anche:

Per le informazioni riferite a questo argomento e per compilare i programmi è stata usata la
vers. 5.40 di mikroBasic Pro for PIC.

Altre versioni del compilatore potrebbero avere comportamenti diversi o non funzionare.

program prova_main
'16F877A, 8MHz

main:
    trisb = %00000000
    portb = %00000000

ripeti:
    portb = %11111111
    delay_ms(1000)

    portb = %00000000
    delay_ms(1000)

    goto ripeti

end.

Una volta compilato il vostro programma senza errori, come descritto in questa pagina, è possibile testare il suo funzionamento col simulatore software (debugger) integrato in mikroBasic.

Il test consiste nell'osservare i valori che vengono assegnati ai registri e alle variabili, simulando il funzionamento del programma.

Per entrare del modo debugger, eseguire i passi seguenti.

Nell'immagine sopra, sono visualizzate le icone, i comandi ed i tasti rapidi del menu "Run".

(1) Cliccare sulla voce di menu "Run" e poi su

(2) "Start Debugger" (o premere F9 sulla tastiera).

   

(3) Si aprirà la finestra "Watch Values" e vedremo,
(4) evidenziata, l'istruzione del programma che verrà eseguita, successivamente, dal debugger a nostro comando.

Nel nostro programma semplice, non abbiamo variabili, ma soltanto il registro PORTB.

(5) Cliccando sulla casella "Select variable from list:"

si aprirà una lista di tutte le variabili e registri che possiamo scegliere da tenere sotto controllo.

(6) Clicchiamo su PORTB che è il registro che ci interessa.

Adesso dobbiamo inserirlo nella nostra lista di variabili e registri da tenere sotto controllo. Per fare questo:

(7) clicchiamo su "Add".

Se ci sono altre variabili da inserire, si ripetono i passi da (5) a (7)

(8) Vedremo il nome della variabile o del registro,

(9) il valore (in decimale) contenuto nella variabile o registro,

(10) l'indirizzo o locazione (in esadecimale) che è stato assegnato alla variabile o registro nella memoria.

Confrontando il datasheet del PIC16F877A, vediamo che il registro PORTB è stato allocato nella locazione 06h (6 esadecimale) della memoria RAM.

Questo corrisponde al nostro indirizzo (10) 0x0006.

Il valore contenuto nella variabile è rappresentato in formato decimale ma,

(11) cliccando in questo punto

e poi

(12) su questo pulsantino (oppure su "Properties"), possiamo scegliere la rappresentazione in decimale, esadecimale, binario, virgola mobile (float) oppure carattere (char).

(13) Nel caso specifico, io ho scelto una rappresentazione esadecimale.

Nello stesso modo,

(14) possiamo anche modificare il valore alla variabile.

(15) Alla fine clicchiamo su OK.

   

(16) Vediamo che ora il valore è rappresentato in esadecimale.

(17) Ora clicchiamo sull'icona "Step Into" (oppure premiamo F7 sulla tastiera) ed eseguiamo il programma, una istruzione per volta, fino all'etichetta "ripeti".

   

(18) La prossima istruzione dovrebbe cambiare il valore di PORTB.
Clicchiamo ancora sull'icona "Step Into" (oppure F7 sulla tastiera).

   

(19) PORTB modificato.
La prossima istruzione chiama una sub procedura di ritardo di 1000 millisecondi (1 secondo).

   

Una volta eseguita la sub procedura, ci troviamo nella situazione della figura sopra.

Vediamo, nella finestra "Watch Clock" che sono trascorsi 1000 millisecondi.

Eseguiamo la prossima istruzione.

   

PORTB è stato azzerato.

   

Altro ritardo di 1 secondo e proseguiamo.

   

Ci ritroviamo nella condizione iniziale, pronti a ripetere il tutto.

(20) Se clicchiamo sull'icona "Disassembly mode" (oppure Alt + D, sulla tastiera), passiamo alla visualizzazione assembly.

   

(21) Se passiamo col mouse sopra il nome di una variabile, apparirà istantaneamente una piccola casella di informazione con l'indirizzo, il nome ed il valore della variabile in quel momento.

(22) Viene mostrato il PC (Program Counter), cioè l'indirizzo, nella memoria di programma (ROM), dove è allocato il codice in linguaggio macchina (comprensibile dal microcontroller) e corrispondente all'istruzione assembly evidenziata.

   

(23) Se clicchiamo su una riga del programma, e poi

(24) clicchiamo sull'icona "Run To Cursor" (oppure F4 sulla tastiera),

   

(25) verrà eseguito il programma fino al punto dove si trova il cursore.

   

(26) Per tornare alla visualizzazione in modalità mikroBasic, cliccare ancora sull'icona "Disassembly mode" (oppure Alt + D, sulla tastiera).

   

Se non vogliamo eseguire il programma passo per passo, possiamo mettere dei punti di arresto (breakpoint)

(27) cliccando sul pallino blu a sinistra dell'istruzione, nel punto che ci interessa.
Per togliere il breakpoint, cliccare nello stesso punto.

Per eseguire il programma fino all'incontro di un breakpoint
(28) cliccare sull'icona "Run/Pause Debugger" (oppure F6 sulla tastiera).

   

(29) L'esecuzione si arresterà in questo punto, in attesa di un comando del debugger per proseguire.

(30) Cliccare su "Remove" per cancellare una variabile dalla nostra lista.

(31) Cliccare qui per aggiungere tutte le variabili alla lista o per rimuoverle tutte.

(32) Cliccare sull'icona "Stop Debugger" ( o Ctrl + F2 sulla tastiera) per uscire dal modo debugger e terminare la simulazione.

 

Semplice programma mikroBasic PRO

mikroBasic PRO - Preparare debug con MPLAB

Bibliografia:
Manuale mikroBasic PRO
Datasheet PIC16F877A

 

Ultima modifica