Parole chiave, istruzioni minime, comandi del PBASIC e loro uso in un programma (in ordine alfabetico) Vello Bruno.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Selezione - approfondimento
PROGRAMMARE IN PASCAL (le basi)
I File di testo in Pascal
Sviluppo di programmi strutturati
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Generazione di Codice Intermedio
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Circuiti sequenziali Capitolo 5.
PLC PCD1 della SAIA-Burgess
MICROCONTROLLORI Di Tiziano Ragazzi.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
Caratteri e stringhe di caratteri
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
File.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Chapter 4: Controlling Motion
Cosè un programma? LALA PROGRAMMAZIONE PROGRAMMAZIONELALA PROGRAMMAZIONE PROGRAMMAZIONE UN ELENCO DI ISTRUZIONI, APPARTENENTI A UN BEN DEFINITO LINGUAGGIO,
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
CALCOLATORI ELETTRONICI Gestione delle subroutine.
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Gestione delle subroutine
Introduzione alla programmazione lll
Somma = A + B start Stampa Somma Leggi A,B stop Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox(Immetti un secondo numero)
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Come aumentare le linee di I/O?
Il Linguaggio Macchina
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
SOTTOPROGRAMMA Un sottoprogramma lo si usa spesso per suddividere degli algoritmi molto complessi Una delle regole molto importanti è il rettangolo che.
I File.
Lezione 2 Programmare in ASP
Corso di PHP.
Rete Sincrona Una rete sequenziale sincrona, è dotata di un ingresso E, di un segnale di Clock e uno di reset. Ad ogni fronte del Clock, deve essere campionato.
CODIFICA Da flow-chart a C++.
Simulatore Breve riassunto dei comandi più importanti del simulatore MPLAB.
Architettura degli Elaboratori II (canale P-Z) Istruzioni di controllo Dott. Franco Liberati.
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Programmare in Visual Basic
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
Registro a scorrimento
Unità centrale di processo
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Lezione 3 Struttura lessicale del linguaggio
Architettura di una CPU
Introduzione a Javascript
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Allievi Elettrici - AA Le funzioni ricorsive in C
Sottoprogrammi e funzioni
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
L’esecuzione dei programmi
Interpreti e compilatori
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Esercizi.
Informatica e Informatica di Base
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata (3) Istruzioni J-type Istruzioni di salto Istruzioni.
Approfondimenti SQL.
Introduzione ai Microcontrollori Una prima definizione I microcontrollori sono utilizzati per gestire segnali in ingresso (input utente o da sensori),
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
PROGRAMMA: «IL FUTURO» BONIFAZI CAMILLA. BLOCKY Blocky è un linguaggio informatico visuale che, a differenza delle tradizionali programmazioni che utilizzano.
Transcript della presentazione:

Parole chiave, istruzioni minime, comandi del PBASIC e loro uso in un programma (in ordine alfabetico) Vello Bruno

Istruzioni per l’uso I comandi che sono essenziali vengono evidenziati da uno sfondo verde; quelli scritti in giallo non sono da considerarsi (per ora); lo sfondo bicolore giallo-grigio riguarda i comandi utili agli studenti di V ITI per la comunicazione ad infrarossi. Per ogni chiarimento … prima pensateci, poi chiedete. Vello Bruno

BRANCH: è un’istruzione di salto condizionato. BRANCH offset, [ indirizzo0, indirizzo1, …indirizzo N] Va all’indirizzo specificato da “offset” (se compreso nell’elenco). “Offset” è una variabile / costante che specifica a quale indirizzo della lista andare (0-N). Gli indirizzi sono etichette (di subroutines) che specificano dove andare. Esempio: BRANCH Muovi, [pianissimo, piano, medio, veloce] Nella variabile “Muovi” ci sarà un valore compreso tra 0 e 3. In caso contrario l’istruzione non avrà effetto e il controllo va alla riga successiva Vello Bruno

BUTTON: è un comando che fa saltare il programma all’indirizzo dato se il pulsante a rimbalzo è nella condizione di premuto. BUTTON pin, downstate, delay, rate, workspace, targetstate, label Il pulsante a rimbalzo, permette l’auto ripetizione e salta all’indirizzo se il pulsante è nella condizione di premuto. Pin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15. Downstate è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..1. Delay è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..255. Rate è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..255. Workspace è una variatile di tipo byte o word. Targetstate è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..1. Label è un’etichetta valida per saltare nella situazione data da un pulsante premuto. Esempio: Se il pulsante non è premuto …. Vello Bruno

COUNT: invia cicli ad un pin per un dato tempo (0 - 125 kHz, assumendo il duty cycle al 50% ). COUNT pin, period, result Pin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15. Period è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..65535. Result è una costante, espressione o variabile di tipo bit, nibble, byte o word. Vello Bruno

CR: (carriage return) : è un carattere di controllo e manda a capo lo scritto (se c’è tra le virgolette). Esempio: DEBUG CR “CIAO” Rispetto alla riga precedente, il CIAO sarà scritto sotto Vello Bruno

CRSRXY : manda lo scritto successivo in un punto della “finestra di DEBUG” (d’ora in poi chiamata finestra (di lettura)) determinato dalle coordinate XY, dove X è la colonna e Y è la riga. Questo permette di sovrascrivere i dati nuovi sulla posizione dei dati vecchi Esempio: CRSRXY, 0 , 3, DO “P5 = “, BIN!, IN5, “ P7 = “, BIN1 IN7 Pause 50 LOOP (non considerare per ora altri comandi presenti!) Vello Bruno

DATA : è un’ISTRUZIONE e serve per salvare nella EEPROM una stringa di dati. DATA { pointer} DATA {@ location,} { WORD} { data}{( size)} {, { WORD} { data}{( size)}...} Memorizza dei dati nella EEPROM prima di caricare il programma PBASIC. Pointer è il nome di una costante o variabile di tipo bit, nibble, byte o word, opzionale e indefinita alla quale è assegnato il valore della prima locazione di memoria in cui il dato è scritto which is assigned the value of the first memory location in which data is written. Location è una costante, espressione o variabile di tipo bit, nibble, byte or word opzionale che indica la prima locazione di memoria in cui il dato deve essere scritto. Word è un “interruttore” opzionale che fa memorizzare il dato in due distinti byte. Data è una costante o espressione che deve essere scritta in memoria. SIZE è una costante opzionale che descrive il numero di byte, definiti o indefiniti, di dati da scrivere/conservare in memoria. Se DATA non è specificato allora viene riservato uno spazio dati indefinito e se DATA è specificato allora vengono scritti in memoria bytes di dati nello spazio pari a DATA. Vello Bruno

Questi dati possono essere letti dentro un “loop” come questo: DO Occorre sapere che ogni movimento del robot nel basic è effettuato dando una singola lettera di codice, che richiama una subroutine (traduci come “programma che dipende da…): F per avanti; B per indietro; L per gira a sinistra; R per gira a destra. Quindi movimenti complessi possono essere facilmente descritti da una sequenza di lettere, che termineranno con la Q di”quit”. Esempio: DATA “FLFFRBLBBQ” Ogni lettera è memorizzata in un byte della EEPROM iniziando dall’indirizzo 0 (a meno che noi vogliamo iniziare a memorizzare altrove). Associata a questa istruzione avremo (la rivedremo) l’istruzione READ, che legge nella EEPROM ed estrae i dati memorizzati finché il programma gira. Questi dati possono essere letti dentro un “loop” come questo: DO READ indirizzo, istruzione indirizzo= indirizzo+ 1 ‘blocco di comandi Pbasic qui non scritti. LOOP Vello Bruno

DEBUG : fa apparire nella finestra del PC la scritta che viene posta tra apici. DEBUG outputdata {, outputdata...} Outputdata è unastringa di testo, constante o una variabile di tipo bit, nibble, byte o word. Se non sono specificate formati con cui mostrare i dati, DEBUG mostra per default caratteri ascii senza spazi o a capo, col valore a seguire Esempio: DEBUG CR, “Hello, this is a message from your Boe-Bot,” DEBUG CR, “What’s 7 x 11?” DEBUG CR, “The answer is:” DEBUG DEC 7 * 11 (DEC è un formato che dice di mostrere valori decimali) Il programma si scriverà così (nella slide seguente): Vello Bruno

Questa è la finestra che appare nel PC Vello Bruno

Nella finestra di DEBUG allora apparirà quanto segue: Vello Bruno

DEBUGIN: è un COMANDO che manda il valore, da te immesso nella finestra del pannello di trasmissione (come prima si era visto nel pannello di lettura), nella variabile opportunamente scelta. Esempio: Supponiamo che la variabile sia pulseWidth. Il programma deve allora contenere una dichiarazione per questa variabile: pulseWidth VAR Word Il comando DEBUGIN è usato quindi per catturare il valore decimale che tu scrivi nel pannello di trasmissione e lo immette nella variabile pulseWidth. DEBUGIN DEC pulseWidth Questo valore immesso ora può essere usato dal programma. Vello Bruno

DEC : è una parola-chiave che permette di mostrare un valore decimale nella finestra. Esempio: DEBUG CR, “What’s 7 x 11?” DEBUG CR, “The answer is:” DEBUG DEC 7 * 11 La finestra ora mostrerà due righe, quella della domanda e quella della risposta col valore numerico 77 sulla stessa linea (non c’era il CR!). Avevamo già visto queste tre righe, ma avevo chiesto di ignorare i comandi non in spiegazione.. Ora si nota (in grassetto) la parola DEC. Vello Bruno

DO...WHILE: è un’ISTRUZIONE che permette di compiere un loop finché sussiste una certa condizione, smettendo il loop al cessare della condizione. Esempio: DO duration = duration + 1 WHILE duration <=2000 Ovviamente prima si era dichiarato un valore iniziale della variabile duration e la condizione per continuare il loop è che tale variabile contenga un valore minore o uguale a 2000. Quando tale valore viene superato, cessa il loop e si passa all’istruzione successiva. Vello Bruno

DO … LOOP : è un COMANDO usato in differenti circostanze DO … LOOP : è un COMANDO usato in differenti circostanze. Vediamo di seguito le possibilità offerte da questo comando, considerando gli esempi posti per apprenderne l’uso nelle diverse necessità. A prima vista può apparire indifferente l’uso dell’una o dell’altra forma, ma con la pratica se ne capirà l’utilità della diversificazione. Vello Bruno

DO … LOOP UNTIL (condizione): continua il loop finché non diventa vera una certa condizione inizialmente falsa. Esempio: DO READ address, instruction address= address+1 ‘blocco di comandi Pbasic qui non scritti. LOOP UNTIL INSTRUCTION = “Q” Vello Bruno

DO WHILE (condizione) … LOOP invece continua il loop finché resta vera una certa condizione inizialmente vera. Esempio: Vello Bruno

DTMFOUT: genera toni telefonici DTMF DTMFOUT pin, { ontime, offtime,}[ key{, key...}] Pin is a constant, expression or a bit, nibble, byte or word variable in the range 0..15. Ontime and offtime are constants, expressions or bit, nibble, byte or word variables in the range 0..65535. Key is a constant, expression or a bit, nibble, byte or word variable in the range 0..15. Vello Bruno

ELSE : è un’ISTRUZIONE che fa compiere una scelta al processo della situazione in corso. Viene eseguita la parte di programma che segue l’ELSE se risulta falsa la condizione posta con l’istruzione IF (si vedrà in seguito). Esempio: IF IN5 = 0 THEN ‘blocco di comandi Pbasic qui non scritti. ELSE ‘blocco di comandi Pbasic qui non scritti. ENDIF Vello Bruno

ELSEIF: se occorre nidificare diversi IF, ogni volta occorre mettere questa istruzione. Esempio: IF numero=0 THEN vai di qui ELSEIF numero>5 THEN vai di là ELSEIF numero <3 AND >4 THEN non andare …….. ,,,,,,,,, Vello Bruno

END: termina il programma Vello Bruno

ENDIF: da mettere alla fine di ogni nidificazione di IF Esempio: IF numero=0 THEN vai di qui ELSEIF numero>5 THEN vai di là ELSEIF numero <3 AND >4 THEN non andare ENDIF ENDIF ENDIF Vello Bruno

FOR … NEXT: crea un ciclo ripetitivo che esegue le linee di programma poste tra FOR e NEXT, incrementando o decrementando una variabile in accordo col valore “stepVal” (in pratica è un “passo”, che se non specificato vale 1) finché il valore della variabile giunge all’ultimo valore. FOR variabile = valore iniziale to valore finale { stepVal} …NEXT Variabile è un bit, nibble, byte o word di variabile usata come contatore. Quando il valore della variabile raggiunge la fine, il ciclo FOR . . . NEXT ferma la sua esecuzione ed il programma torna all’istruzione che segue il NEXT. Se il valore iniziale è più grande del valore finale, PBASIC2 interpreta il “passo” stepVal come negativo, così come quando viene usato un valore negativo per “stepValue”.. Vello Bruno

FREQOUT: genera una o due onde sinusoidali di specificata frequenza (da 0 a 32767 Hz). FREQOUT pin, milliseconds, freq1 {, freq2} Pin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo of 0..15. Milliseconds è una costante, espressione o variabile di tipo bit, nibble, byte o word. Freq1 e freq2 sono costanti, espressioni o variabili di tipo bit, nibble, byte o word nell’intervallo 0..32767 rappresentanti le corrispondenti frequenze. Vello Bruno

GOSUB: carica l’indirizzo della prossima istruzione dopo GOSUB, quindi va al punto del programma specificato dalla Etichetta_di_indirizzo. GOSUB Etichetta_di_indirizzo Viene quindi svolta una “subroutine” (piccolo sottoprogramma), che terminerà con la seguente istruzione: RETURN Return fa tornare indietro dalla “subroutine”, appena svolta, al punto del programma immediatamente successivo all’ultimo salto fatto col GOSUB. Vello Bruno

GOTO: va al punto, nel programma, specificato da una Etichetta_di_indirizzo. GOTO Etichetta_di_indirizzo Etichetta_di_indirizzo è un’etichetta che specifica dove andare. Vello Bruno

HIGH: pone lo specificato pin di uscita a livello alto (scrive 1 nei corrispondenti bit di entrambi i DIRS e OUTS). HIGH pin Pin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15 DIR è OUT è Vello Bruno

IF...THEN: valuta la condizione e, se risulta vera, va al punto del programma marcato con l’etichetta di indirizzo (o esegue il/i comando/i). IF condizione THEN etichetta di indirizzo (comando) La condizione è uno”statement” , come “x=7” che può essere valutata come vera o falsa. L’ etichetta di indirizzo è un’etichetta (nome) che specifica dove andare nel caso che la condizione sia vera. Vello Bruno

LOOKDOWN: scrive(. )/legge( LOOKDOWN: scrive(?)/legge(?) il valore specificato da value e lo confronta con i valori che seguono tramite l’operatore logico seguente (ponendolo?) nell’apposita variabile LOOKDOWN value, {??,} [ value0, value1,... valueN], variable Value è una costante, espressione o variabile di tipo bit, nibble, byte or word. ?? è =, <>, >, <, <=, =>. (= è per default). Value0, value1, etc. sono costanti, espressioni o variabili di tipo bit, nibble, byte or word. Variable è una variabile di tipo bit, nibble, byte o word. Vello Bruno

LOOKUP: legge il valore specificato da index e lo carica in una variabile LOOKUP index, [ value0, value1,... valueN], variable Index è una costante, espressione, o una variabile di tipo bit, nibble, byte o word. Value0, value1, etc. sono delle costanti, espressioni, o variabili di tipo bit, nibble, byte o word. Variable è una variabile di tipo bit, nibble, byte o word. Se “index” eccede il più alto valore della lista, la variabile è ininfluente. Nella lista possono essere inclusi un massimo di 256 valori. Vello Bruno

LOW: Pone il “pin” di uscita a livello basso (messo a 1 dal corrispondente bit del DIRS e a 0 dal corrispondente bit del OUTS) LOW pin Pin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15. Vello Bruno

NAP: addormenta il programma per un piccolo periodo NAP: addormenta il programma per un piccolo periodo. Il consumo di corrente è ridotto a 50 uA. NAP period END Period è una constante, expressione oppure una variabile di tipo bit, nibble, byte o word nell’intervallo 0..7 della durata ciascuno di 18ms. Il programma dorme finché c’è alimentazione o il PC è connesso. Il consumo di corrente è ridotto approssimativamente a 50 uA Vello Bruno

PAUSE: Esecuzione di una pausa per 0–65535 millisecondi PAUSE milliseconds Milliseconds è una constant,e expressione oppure una variabile di tipo bit, nibble, byte o word nell’intervallo 0..65535. Vello Bruno

PULSIN: Misura un impulso in ingresso (risoluzione di 2 µs) PULSIN: Misura un impulso in ingresso (risoluzione di 2 µs). PULSIN pin, state, variable Pin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15 State è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..1. Variable è una variabile di tipo bit, nibble, byte o word. Le misure vengono effettuate con 2µs di intervallo e le istruzioni vogliono un intervallo di uscita di 0.13107 secondi. Vello Bruno

PULSOUT: Output emette un impulso di durata determinata che inverte il valore in un pin per un certo tempo (risoluzione di 2 µs). PULSOUT pin, period Pin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15 Period è una costante, un’espressione o un bit, nibble, byte o word. Variable nell’intervallo 0..65535 rappresenta la larghezza dell’impulso in unità di 2 µs. Vello Bruno

PWM: Output PWM, then return pin to input PWM: Output PWM, then return pin to input. This can be used to output analog voltages (0-5V) using a capacitor and resistor. PWM pin, duty, cycles. Pin is a constant, expression or a bit, nibble, byte or word variable in the range 0..15. Duty is a constant, expression or a bit, nibble, byte or word variable in the range 0..255. Cycles is a constant, expression or a bit, nibble, byte or word variable in the range 0..255 representing the number of 1ms cycles to output. Vello Bruno

RANDOM: genera un numero pseudo-random (random = casuale). RANDOM variable Variable è una variabile di tipo byte o word nell’intervallo 0..65535. Vello Bruno

RCTIME: misura il tempo di carica/scarica di un ramo RCTIME: misura il tempo di carica/scarica di un ramo. Può essere usato per misurare dei potenziometri. RCTIME pin, state, variable Pin is a constant, expression or a bit, nibble, byte or word variable in the range 0..15. State is a constant, expression or a bit, nibble, byte or word variable in the range 0..1 Variable is a bit, nibble, byte or word variable. Vello Bruno

READ: read legge un byte nella EEPROM e lo pone in una variabile READ: read legge un byte nella EEPROM e lo pone in una variabile. READ location, variable Location è una constante, expressione o una variabile di tipo bit, nibble, byte o word nell’intervallo 0..2047. Variable è una variabile di tipo bit, nibble, byte o word. Vello Bruno

RETURN: fa terminare una subroutine Esempio: sottoprogrammamio: IF a=b THEN scrivisonouguali ELSE scrivisonodiversi RETURN Il nome del sottoprogramma è strettamente legato al comando RETURN Vello Bruno

SHIFTIN: Sposta i bit dentro un registro a scorrimento parallelo/seriale. SHIFTIN dpin, cpin, mode, [result{\ bits} { , result{\ bits}... }] Dpin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15 che specifica il pin dei dati. Cpin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15 xhe specifica il pin del clock. Mode è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..4 che specifica l’ordine dei bit ed la modalità del clock. 0 o MSBPRE = prima lo msb, pre-clock, 1 o LSBPRE = prima lo lsb, pre-clock, 2 or MSBPOST = prima lo msb post-clock, 3 or LSBPOST = prima lo lsb, post-clock. Result is a bit, nibble, byte or word variable where the received data is stored. Bits is a constant, expression or a bit, nibble, byte or word variable in the range 1..16 specifying the number of bits to receive in result. The default is 8. Vello Bruno

SHIFTOUT: sposta i bit fuori dal registro a scorrimento seriale/parallelo. SHIFTOUT dpin, cpin, mode, [ data{\ bits} {, data{\ bits}... }] Dpin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15 che specifica il pin dei dati (data). Cpin una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15 che specifica il pin del clock. Mode è una costante, symbolo, expressione o variabile di tipo bit, nibble, byte or word nell’intervallo 0..1 che specifica l’ordine dei bit. 0 o LSBFIRST = prima il bit meno significativo (less significative bit), 1 o MSBFIRST = prima il bit più significativo (most …). Data è una costante, espressione o variabile di tipo bit, nibble, byte o word contenente i dati da mandare fuori. Bits è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 1..16 che specifica il numero di bit di dati d mandare. Il valore di default è 8. Vello Bruno

SELECT…CASE…ENDSELECT Vello Bruno

SERIN: serial input with optional qualifiers, time-out, and flow control. If qualifiers are given, then the instruction will wait until they are received before filling variables or continuing to the next instruction. If a time-out value is given, then the instruction will abort after receiving nothing for a given amount of time. Baud rates of 300 - 50,000 are possible (0 - 19,200 with flow control). Data received must be N81 (no parity, 8 data bits, 1 stop bit) or E71 (even parity, 7 data bits, 1 stop bit). SERIN rpin{\ fpin}, baudmode, { plabel,} { timeout, tlabel,} [inputdata] Rpin is a constant, expression or a bit, nibble, byte or word variable in the range 0..15. Fpin is a constant, expression or a bit, nibble, byte or word variable in the range 0..15. Baudmode is a constant, expression or a bit, nibble, byte or word variable in the range 0..65535. Plabel is a label to jump to in case of a parity error. Timeout is a constant, expression or a bit, nibble, byte or word variable in the range 0..65535 representing the number of milliseconds to wait for an incoming message. Vello Bruno

SERIN (segue) Tlabel is a label to jump to in case of a timeout. Inputdata is a set of constants, expressions and variable names separated by commas and optionally proceeded by the formatters available in the DEBUG command, except the ASC and REP formatters. Vello Bruno

SEROUT: Send data serially with optional byte pacing and flow control SEROUT: Send data serially with optional byte pacing and flow control. If a pace value is given, then the instruction will insert a specified delay between each byte sent (pacing is not available with flow control). Baud rates of 300 - 50,000 are possible (0 - 19,200 with flow control). Data is sent as N81 (no parity, 8 data bits, 1 stop bit) or E71 (even parity, 7 data bits, 1 stop bit) SEROUT tpin{\ fpin}, baudmode, { pace,} { timeout, tlabel,} [outputdata] Tpin is a constant, expression or a bit, nibble, byte or word variable in the range 0..16. Fpin is a constant, expression or a bit, nibble, byte or word variable in the range 0..15. MANCA UN PEZZO Vello Bruno

SLEEP: dorme” da 1 a 65535 secondi SLEEP seconds Seconds è una costante, espressione oppure una variabile di tipo bit, nibble, byte o word, nell’intervallo 0..65535, che specifica il numero di secondi di addormentamento. Il consumo di corrente è ridotto approssimativamente a 50 µA. Vello Bruno

STOP: termina l’esecuzione del programma Evita al Basic Stamp l’esecuzione di qualunque istruzione successiva finché viene resettato il sistema. Le seguenti azioni resettano il Basic Stamp: 1) Premere il bottone di RESET sulla basetta 2) Mettere il pin RES basso e rilasciarlo ad alto 3) Caricare un nuovo programma 4) Disconnettere l’alimentazione. STOP è diverso da END per due motivi: 1) STOP non necessita di porre il Basic Stamp in modo “bassa potenza”. Il Basic Stamp pilota carrente come se fosse attivato un programma con istruzioni 2) Non succede che le uscite “cadano (?glitch)” come dopo che un programma ha avuto END come comando. Vello Bruno

TOGGLE: inverte lo stato del pin. TOGGLE pin Pin è una costante, espressione o variabile di tipo bit, nibble, byte o word nell’intervallo 0..15 Vello Bruno

XOUT: generate X-10 powerline control codes XOUT: generate X-10 powerline control codes. For use with TW523 or TW513 powerline interface module. XOUT mpin, zpin, [ house\ keyorcommand{\ cycles} {, house\ keyorcommand{\ cycles}... }] Mpin is a constant, expression or a bit, nibble, byte or word variable in the range 0..15 specifying the modulation pin. Zpin is a constant, expression or a bit, nibble, byte or word variable in the range 0..15 specifying the zerocrossing pin. House is a constant, expression or a bit, nibble, byte or word variable in the range 0..15 specifying the house code A..P respectively. Keycommand is a constant, expression or a bit, nibble, byte or word variable in the range 0..15 specifying keys 1..16 respectively or is one of the commands shown for X-10 light control in the BASIC Stamp Manual. These commands include lights on, off, dim and bright. Cycles is a constant, expression or a bit, nibble, byte or word variable in the range 2..65535 specifying the number of cycles to send. (Default is 2). Vello Bruno