Elenco comandi
di programmazione

ultimo aggiornamento 11 febbraio 2008

JLCPCB - 2$ per prototipi di PCB, di qualsiasi colore. Produzione in 24 ore!
L'Azienda di prototipi PCB più popolare, con oltre 700.000 clienti in tutto il mondo!
Continua la produzione dei PCB standard a 2 strati durante le festività primaverili


5 Riferimento dei Comandi
Questo capitolo esamina nel dettaglio tutte le istruzioni del PBASIC.
Di seguito c’è un elenco delle istruzioni suddiviso per funzionalità:

Test e salto

IF...THEN  

Esegue un test ed effettua un salto ad una riga del programma.

BRANCH

Effettua un salto ad una riga del programma in base ad un indice.

GOTO  

Effettua un salto incondizionato ad una riga del programma.

GOSUB  

Effettua un richiamo di una procedura.

RETURN  

Ritorna da una procedura.

RUN  

Esegue un altro programma.

POLLRUN  

Esegue un altro programma fino al ricevimento di un interrupt.

Cicli di esecuzione

FOR..NEXT  

Esegue un ciclo delle istruzioni un certo numero di volte.

homotix

Accesso alla EEPROM

EEPROM  

Memorizza dei dati nella EEPROM prima di scaricare il programma.

DATA  

Memorizza dei dati nella EEPROM prima di scaricare il programma.

READ  

Copia un byte dalla EEPROM ad una variabile.

WRITE  

Scrive un byte nella EEPROM.

Accesso alla RAM

GET  

Copia un byte dalla RAM in una variabile.

PUT  

Scrive un byte nella RAM.

Numerici

LOOKUP  

Legge un dato all’interno di un elenco.

LOOKDOWN  

Cerca un dato all’interno di un elenco.

RANDOM  

Genera un numero pseudo-casuale.

I/O Digitale

INPUT  

Setta un pin in modalità di input

OUTPUT  

Setta un pin in modalità di output.

REVERSE  

Inverte la direzione di un pin .

LOW  

Mette a 0 logico un pin settato in output.

HIGH  

Mette a 1 logico un pin settato in oupu.t

TOGGLE  

Setta un pin in output ed inverte lo stato logico .

PULSIN  

Misura un inpulso in ingresso.

PULSOUT  

Genera un impulso invertendo lo stato di un pin.

BUTTON 

Legge lo stato di un pulsante e salta ad una riga del programma.

COUNT  

Conta i cicli (1-0 e 0-1) su di un pin in un lasso di tempo.

XOUT  

Genera il codice di controllo della linea X-10.

I/O Seriale asincrona

SERIN    Legge un dato da linea seriale asincrona.
SEROUT    Scrive un dato su di una linea seriale asincrona.

I/O Seriale sincrona

SHIFTIN  

Legge un dato da una linea seriale sincrona.

SHIFTOUT  

Scrive un dato su una linea seriale sincrona.

I/O Analogico

PWM  

Genera una tensione di uscita variabile 0-5V utilizzando un circuito RC. Al termine setta il pin in input.

RCTIME  

Misura il tempo di carica/scarica di un circuito RC.


 

Attesa
PAUSE Esegue una pausa da 0 a 65535 millisecondi.
Suono
FREQOUT Genera una o due onde sinusuoidali di una data frequenza.
DTMFOUT Genera un tono telefonico DTMF.
Consumi
NAP Sospende l’esecuzione del programma per un piccolissimo periodo.
SLEEP Si ferma per un periodo da 1 a 65535 secondi.
END Si ferma fino a quando non si resetta l’alimentazioni.

Analisi dei problemi
DEBUG Invia informazioni al PC per il debugging.

BRANCH
BRANCH Offset,[Address0, Address1, ...Address N]
Funzione
Esegue un salto alla riga di programma specificato dall’Offset.

  • Offset è la variabile / costante / espressione (0-255) che specifica la posizione dell’indirizzo a cui saltare all’interno della lista (0-N).

  • Address sono le label che specificano dove saltare

    BUTTON
    BUTTON Pin,DownState,Delay,Rate,Workspace,TargetState,Address
    Funzione
    Applica un algoritmo anti-rimbalzo, esegue un auto ripetizione, e salta ad una riga di comando se il pulsante si trova nella condizione di TargetState.
    La circuiteria del pulsante può essere sia attivo-alto o attivo-basso.

  • Pin è una variabile / costante / espressione (0-15) che specifica il pin di I/O da utilizzare

  • DownState è la variabile / costante / espressione (0-1) che specifica il livello logico da considerare come evento di pulsante premuto.

  • Delay è la varibile / costante / espressione (0-255) che specifica quanto a lungo deve stare premuto il pulsante prima che inizi l’auto ripetizione. Il ritardo è calcolato in cicli di esecuzione del comando BUTTON. Delay ha due valori particolari: 0 e 255. Se Delay è 0 l’istruzione BUTTON non esegue l’algoritmo di anti-rimbalzo nè quello di auto ripetizione. Se Delay è 255 viene eseguito l’algoritmo di anti-rimbalzo ma non l’auto ripetizione.

  • Rate è la variabile / costante / espressione (0-255) che specifica la velocità di auto ripetizione.

  • Workspace è una variabile di tipo byte che serve a BUTTON per memorizzare i cicli effettuati. Bisogna azzerarla prima di usare BUTTON per la prima volta e non bisogna modificarla.

  • TargetState è la variabile / costante / espressione (0-1) che specifica in quale stato del pulsante deve essere fatto il salto all’indirizzo specificato. (0 = non premuto, 1 = premuto)>

  • Address è la label che specifica dove effettuare il salto.

     

     

     Elenco dei comandi
     

    BRANCH

    BRANCH Offset, [Address1, Address2, ...AddressN]

    BUTTON

    BUTTON Pin, DownState, Delay, Rate, Workspace, TargetState, Address

    COUNT

    COUNT Pin, Duration, Variable

    DATA

    {Symbol } DATA DataItem {, DataItem, ...}

    DEBUG

    DEBUG OutputData {, OutputData }

    DEBUGIN

    DEBUGIN InputData

    DO...LOOP

    DO {WHILE | UNTIL Condition(s) } ... LOOP {UNTIL | WHILE Condition(s) }

    DTMFOUT

    DTMFOUT Pin, {OnTime, OffTime, } [Tone {, Tone, ...}]

    END

    END

    EXIT

    EXIT

    FOR...NEX

    FOR Counter = StartValue TO EndValue {STEP StepValue} ... NEXT

    FREQOUT

    FREQOUT Pin, Duration, Freq1 {, Freq2 }

    GET

     

    GET Location, {Word  Variable {, ...}

    GOSUB

    GOSUB Address

    GOTO

    GOTO Address

    HIGH

    HIGH Pin

    IF...THEN

    IF Condition THEN Address

    IF...THEN...ELSE

     

    INPUT    

    INPUT Pin

    LOOKDOWN

    LOOKDOWN Target, {ComparisonOp } [Value0, Value1, ...ValueN], Variable

    LOOKUP

    LOOKUP Index, [Value0, Value1, ...ValueN], Variable

    LOW

    LOW Pin

    NAP

    NAP Duration

    ON...GOSUB

    ON Offset GOSUB Address1, Address2, ...AddressN

    ON...GOTO

    ON Offset GOTO Address1, Address2, ...AddressN

    OUTPUT

    OUTPUT Pin

    PAUSE   

    PAUSE Duration

    PULSIN

    PULSIN Pin, State, Variable

    PULSOUT

    PULSOUT Pin, Duration

    PUT

     

    PUT Location, {Word } Variable {, ...}

    PWM

    PWM Pin, Duty, Duration

    RANDOM

    RANDOM Variable

    RCTIME

    RCTIME Pin, State, Variable

    READ

    READ Location, {Word} Variable {, ...}

    RETURN

    RETURN

    REVERS

    REVERSE Pin

    RUN

     

    RUN ProgramSlot

    SELECT

    CASE     

    SERIN

    SERIN Rpin {\Fpin}, Baudmode, {Plabel,} {Timeout, Tlabel, } [InputData]

    SEROUT

    SEROUT Tpin {\Fpin}, Baudmode, {Pace,} {Timeout, Tlabel,} [OutputData]

    SHIFTIN

    SHIFTIN Dpin, Cpin, Mode, [Variable{\Bits} {, Variable{\Bits}...}]

    SHIFTOUT

    SHIFTOUT Dpin, Cpin, Mode, [OutputData{\Bits} {, OutputData{\Bits}...}]

    SLEEP

    SLEEP Duration

    STOP

    STOP

    TOGGLE

    TOGGLE Pin

    WRITE

    WRITE Location, {Word} Variable {, ...}

    XOUT

    XOUT Mpin, Zpin, [House\Command {\Cycles} {, House\Command {\Cycles}...}]

    Processore BS2
    Processore BS2 SX

     

    Elenco revisioni
    11/02/2008 Emissione preliminare