Elettronicamente.com
La risorsa Italiana per l'elettronica
e l'informatica applicata all'elettronica
  Sponsor
|Home| |Registrazione| |Login| |Disclaimer| |Contattaci| |Guida| |FAQs|
|Download| |Forum| |Links| |MySite|
Cerca in Elettronicamente:
 
I numeri di Elettronicamente.com:
  Iscritti: 12853
  Risorse On-Line: 508
  Links su siti di elettronica: 1304
  Sei il visitatore numero 1171359
Login non eseguito
Descrizione
ID #703  Tutorials
Propeller P8X32A - Parte 2 - L'ambiente di sviluppo (IDE)   28/02/2009
Descrizione dell'ambiente di svulippo (IDE) Parallax per il chip Propeller P8X32A
Difficoltà:
Difficoltà di realizzazione o apprendimento. 2 stella/e.

Voto:
n.d.
Voto attuale (1/10) calcolato in base alla media delle votazioni di tutti gli iscritti che hanno votato questa risorsa.

Autore:
atomix
Autore della risorsa:atomix
HTML:
In questa casella viene indicato se è disponibile una pagina web da visualizzare.
File:
No
Allegato disponibile:
In questa casella viene indicato se è disponibile un file da scaricare.

Crediti Virtuali:
Free
Crediti virtuali necessari per scaricare il file allegato:0

Status:
ONLINE
Partecipa al FORUM di Elettronicamente.com per questo argomento.

 

Parte 2 - L'ambiente di sviluppo del Propeller

L'ambiente di sviluppo (IDE) per il propeller, viene fornito gratuitamente dalla Parallax. Non avendo necessità di avere un programmatore hardware per 'scaricare' il programma sviluppato in SPIN o Linguaggio macchina nella memoria del propeller, gli unici strumenti di sviluppo si riducono all'IDE, che fa anche il lavoro di 'download' del programma nella RAM/EEPROM, e una piccola interfaccia RS232 che permetta il collegamento tra i PIN del propeller (riservati alla comunicazione con il PC) ed il PC. Se non disponiamo di una porta RS232 sul PC, dovremmo utilizzare un convertitore USB<->RS232.

I software necessari e la documentazione:
 

Propeller Tool Software v 1.2.5
Ambiente di sviluppo Parallax (IDE)
Download
Propeller datasheet (PDF)
Descrizione e specifiche tecniche
Download
Propeller manual (PDF)
Manuale di programmazione SPIN e Assembly
Download

 

L'ambiente di sviluppo (IDE):
 



 

Dopo una breve installazione, lanciate l'icona 'Propeller Tool' ed attendete l'apertura del compilatore. Lo schermo sarà diviso in quattro parti:

1.Pannello oggetti - In questo pannello vengono visualizzati tutti i componenti (oggetti) che fanno parte del progetto corrente. Il linguaggio SPIN essendo di tipo 'object-oriented', in questa finestra viene rappresentata graficamente la gerarchia degli oggetti e come essi sono collocati nel progetto.

2-3.Pannelli di esplorazione file - Viene visualizzato il percorso (cartelle) e contenuto del disco. Utilizzando queste finestre è possibile esplorare le cartelle e i file per l'apertura dei programmi.

4. Pannello Editor - In questo pannello è possibile visualizzare e modificare i files aperti. Per ciascun file aperto verrà visualizzato in alto un 'tab' che ricorda il nome del file. In questo modo sarà semplice passare da un file all'altro facendo click sul nome visualizzato nel 'tab'.

Ciascun pannello è ridimensionabile. Basterà avvicinare il mouse sui bordi finché non compaiono le doppie frecce, fate click con i tasto sinistro e trascinate il bordo.


 

E' possibile inoltre far comparire/scomparire tutta la parte di esplorazione file con la combinazione tasti [CTRL+E] oppure dal menù File->Hide/Show Explorer.


 


 



 

 



 

Quando aprite più di un file, questi normalmente vengono visualizzati in 'tab', raccolti tutti assieme e sovrapposti nella barra di visualizzazione in alto. Come già descritto, per passare da un file all'altro, dobbiamo fare click sul 'tab' associato, ma per avere una visione contemporanea dei files, è possibile dividere lo schermo in due parti. Per fare questo, basterà trascinare il nome di uno dei files visualizzati sul 'tab' al centro dello schermo. Per ripristinare la condizione precedente basterà eseguire l'operazione al contrario.


 

E' possibile inoltre portare un file aperto da un pannello di visualizzazione all'altro. Per fare questo, trascinate il nome visualizzato nel 'tab' da un pannello all'altro.


 



 


 


I due pannelli di visualizzazione possono essere dimensionati a piacere. Similarmente al pannello di esplorazione file, trascinate il bordo fino alla dimensione desiderata.



 

Nell'IDE è possibile inoltre trascinare un file aperto in visualizzazione/edit esternamente alla finestra stessa dell'ambiente di sviluppo. Trascinando il 'tab' relativo al file aperto che vogliamo 'portare fuori', si aprirà una nuova finestra esterna all'ambiente, con all'interno il nostro codice. In questo modo potete dividere lo schermo in quanti file desideriate.


 

Per ripristinare la condizione precedente basterà eseguire l'operazione al contrario.


 


 


 



La finestra relativa alla vista degli oggetti fornisce informazioni sui componenti del progetto e alla loro gerarchia. I nomi degli oggetti sono uguali ai nomi dei loro relativi file senza estensione. In questo esempio, il file 'ABC Product.spin' è il file principale del progetto che include gli altri tre (Numbers, Rotary Encoder e Controller). Quest'ultimo utilizza un oggetto chiamato TV.spin




 

Quando l'icona è gialla, il file si trova all'interno della cartella del progetto.



 

Quando l'icona è blue, il file si trova all'interno della cartella 'Library'.



 

Quando l'icona è blue e gialla, significa che ci sono due file con lo stesso nome, sia nella cartella del progetto che in quella della libreria (Library).



 

Quando l'icona è di colore bianco, significa che il file è nuovo e non è stato mai salvato.

Avvicinando il mouse ai nomi degli oggetti, verranno visualizzate informazioni aggiuntive (es. percorso fisico del disco).

Per visualizzare la struttura degli oggetti, è necessario compilare almeno una volta il progetto.

Barra di stato: Fornisce informazioni sullo sviluppo del progetto corrente. Si trova sulla parte bassa delli'IDE ed è divisa in sei parti.


 


 


 


 

1. Indica la posizione del cursore, riga e colonna.

2. Indica se il file è stato modificato (modified), non modificato (vuoto) o di sola lettura (read-only)

3. Indica la modalità di scrittura (modificabile con il tasto 'ins' della tastiera). Le tre modalità sono: Insert (default), Align e Overwrite.

4. Può essere vuoto o con la scritta 'Compiled'. La scritta compare quando un file viene compilato almeno una volta.

5. Visualizza informazioni relative alla parte di codice che sta creando/modificando e relative alla finestra dove in quel momento è presente il cursore.

6. Fornisce informazioni di carattere generale e relative al progetto attualmente aperto. (es. compilazione eseguita correttamente senza errori).


 

Quando il progetto è composto da più oggetti (e quindi più file), è necessario indicare al compilatore qual'è il file principale da cui poi vengono richiamati tutti gli altri file oggetto che compongono il progetto.

Impostate il file principale (Top Object File), dal menu File->Select Top Object File, oppure nella finestra di esplorazione file, selezionatene uno e facendo click con il tasto destro del mouse selezionate 'Top Object File'.
 



Finestra informazioni sul Progetto:

Run->Compile Current->View Info [F8]

Run->Compile Top->View Info [CTRL+F8]


 

In questa finestra è possibile avere informazioni globali relative al progetto corrente (Compile Top) oppure relative solo ad un singolo file (Compile Current).
 

Le informazioni visualizzate sono relative alla struttura del progetto (similarmente alla finestra di esplorazione in alto a sinistra dell'IDE), alla quantità di memoria impiegata (in termini di codice programma, variabili e stack) ed infine le caratteristiche del clock impostate.
 

Facendo click sull'oggetto principale (in grassetto) si visualizzano le informazioni relative al file principale che compone il progetto, mentre selezionando gli altri file oggetto, verranno visualizzate le informazioni relative solo a quella parte di codice.
 

Facendo click sul pulsante 'Show Hex' verranno visualizzate informazioni aggiuntive, come la rappresentazione esadecimale ed ASCII del contenuto della RAM.

 


 


 

Espandendo la finestra è possibile utilizzare dei pulsanti di utilità:


 

Load RAM: Esegue il trasferimento del programma compilato nella RAM del propeller, eseguendolo.

Load EEPROM: Stesso risultato del pulsante precedente, con la differenza che il programma viene caricato nella EEPROM esterna e quindi al RESET del chip o allo spegnimento, il programma non viene perduto.

Load File: Apre un file immagine della EEPROM (.eeprom), o un file già compilato in binario (.binary)

Save Binary File: Salva un file binario contenente il codice relativo all'oggetto in quel momento selezionato. Il file binario non include informazioni relative alle variabili e allo spazio riservato allo stack.

Save EEPROM: Stessa funzione del tasto precedente, con la differenza che viene salvata tutta la memoria, incluso lo spazio relativo alle variabili e allo stack.


 


La Font di caratteri Parallax: 

Come già accennato, la Parallax include nel propeller, una font personalizzata caratterizzata anche da speciali caratteri per il disegno di schemi elettrici. Nell'IDE viene messa a disposizione una utility per individuare facilmente i caratteri e utilizzarli nei file di codice sorgente.

Facendo click su: Help->View Character Chart.. verrà visualizzata una finestra riportante tutti i caratteri di questa font con i loro relativi codici ASCII. Facendo click su un carattere, questo verrà inserito all'interno della finestra di testo nella posizione corrente del cursore.
 



 



 



 

I caratteri possono essere visualizzati in tre differenti viste:

Standard: Visualizzati in modo sequenziale, ordinati per numero.

ROM Bitmap: Visualizzati secondo come sono memorizzati nella ROM del propeller, utilizzando quattro colori.

Symbolic Order: Per categoria.

 

Le tre modalità di Editing del codice:

Premendo il tasto INS, è possibile passare in tre differenti modalità di 'editing' del codice. Questa caratteristica dell'IDE è una novità rispetto ai tradizionali ambienti di sviluppo, in cui le uniche scelte solitamente sono solo due: Insert Mode e OverWrite Mode. L'ambiente di sviluppo Parallax include anche la funzionalità 'Align', utile ai fini della manutenzione del codice che presenta commenti.
 



 

Insert Mode: (cursore a barra verticale lampeggiante)
Aggiunge del testo spostando la parte rimanente verso destra.



 

Align Mode: (Cursore a barra orizzontale lampeggiante)
(funzionalità disponibile solo con file di tipo .spin)
Aggiunge del codice, mantenendo inalterata la distanza tra la fine della riga di codice e l'inizio del commento ('). Funzionalità molto utile per la manutenzione del codice sorgente.



 

Overwrite Mode: (Cursore pieno lampeggiante)
Sovrascrive il testo esistente non alterando la posizione di quest'ultimo.


Introduzione al linguaggio di programmazione:

Dopo aver fatto una panoramica generale sull'ambiente di sviluppo (sia hardware che software) del Propeller, cominciamo ad inoltrarci nel linguaggio di programmazione. Come già accennato, la Parallax mette a disposizione due metodi gratuiti per sviluppare software, il primo è il linguaggio SPIN (più ad alto livello, simile al basic/C) ed il secondo è il linguaggio macchina proprietario del dispositivo, sicuramente più difficile da imparare, ma con grandi vantaggi nella velocità di esecuzione, in quanto non essendo interpretato come lo SPIN, viene eseguito direttamente dai Cog senza alcun ritardo. Il grande vantaggio che offre l'ambiente di programmazione, è la possibilità di poter scrivere programmi utilizzando anche entrambi i linguaggi contemporaneamente. In questo modo possiamo semplificare i passaggi sui calcoli, gestire menu e grafica utilizzando lo SPIN, e poi quando abbiamo bisogno di velocità nell'esecuzione del codice, precisione nelle acquisizioni o nei tempi, possiamo utilizzare il linguaggio macchina. Per vedere un esempio di come questo sia possibile, basta aprire una delle tante librerie .spin messe a disposizione da Parallax e installate automaticamente dopo l'installazione dell'IDE.


 

Filosofia del linguaggio SPIN; Cosa sono gli oggetti: 

Il linguaggio SPIN, è un linguaggio 'Object-Based'. Questo significa che un programma può essere composto da più file .spin, in cui ciascun file è un oggetto. Un oggetto esegue una specifica funzione del programma, e può richiamare metodi di altri oggetti collegati ad esso. Per fare un esempio, tra le librerie standard dell'IDE troverete l'oggetto 'keyboard.spin', un oggetto che esegue le funzionalità d'interfaccia tra il propeller e una tastiera standard per PC di tipo PS/2. I metodi (routines) disponibili all'interno di questo oggetto sono richiamabili e fruibili da oggetti esterni, così da avere la possibilità di ricevere i caratteri dalla tastiera semplicemente includendo questa libreria nel nostro programma (oggetto) principale. Un programma per il Propeller sviluppato in SPIN, può contenere molti oggetti, ma uno solo deve essere l'oggetto principale, quello da dove parte tutto e da dove parte la prima esecuzione del programma (Top Object File). Con la filosofia ad oggetti, si possono realizzare programmi molto complessi con poche righe di codice; Includendo la giusta libreria corrispondente alla funzionalità richiesta, possiamo comunicare in modo semplice e veloce con la tastiera, il mouse, inviare grafica sulla VGA e sul televisore. In questo modo non dobbiamo preoccuparci di come funziona la libreria, basta solo includerla e utilizzarla.


 



 

Nella figura vengono rappresentati due esempi per uno stesso progetto composto da un oggetto principale (Top Object File) chiamato 'Graphics_Demo' il quale include tre altri oggetti chiamati 'TV', 'Graphics' e 'Mouse'.

Nel primo esempio il programma viene compilato e inviato nella RAM del Propeller per l'esecuzione.

Nel secondo esempio, il programma viene compilato, inviato nella RAM e copiato nuovamente nella EEPROM esterna. Al Boot-Up (accensione) il programma viene copiato dalla EEPROM alla RAM per l'esecuzione.


L'importanza di indentare il codice: 

Nel linguaggio SPIN, la posizione della colonna di inizio del codice ha fondamentale importanza.

Nella prima colonna, vengono riportati i nomi dei 'Block Designators', ovvero gruppi di istruzioni e/o dichiarazioni che devono essere presenti ad ogni inizio programma. Questi possono essere: CON, VAR, OBJ, PUB, PRI e DAT successivamente descritto nel dettaglio. La prima colonna può inoltre iniziare come nome di una 'label' nel caso di codice assembly.
Dalla seconda colonna in poi, si può iniziare una riga di codice (SPIN o Assembly), che può includere alla fine anche una descrizione purché sia preceduta da uno dei caratteri di inizio commento ( ', '', {.}, {{..}} ). Nel caso di istruzioni appartenenti a cicli (REPEAT), o a condizioni di verifica (IF), indentare il codice ha rilevante importanza, perché nel linguaggio SPIN non esistono istruzioni di 'fine blocco' (es. END IF, o LOOP), ma la posizione di colonna del codice stabilisce se l'istruzione deve essere eseguita all'interno del ciclo REPEAT (o IF) o all'esterno. Per facilitare il programmatore nell'individuare a quale gruppo di istruzioni fa parte una riga di codice, basterà premere sulla tastiera la combinazione [CTRL+I], facendo comparire/scomparire delle frecce che indicano in ciascuna riga il gruppo di codice di appartenenza.


 

Nella parte iniziale di un programma SPIN, troverete sempre i 'block designators', colorati come sfondo in modo differente. Ciascun blocco contiene informazioni sulla composizione del programma, come ad esempio le costanti utilizzate, le variabili globali, le routine di programma, e se queste sono di tipo Privato o Pubblico.


 

Blocco

Descrizione

CON

Costanti globali, che possono essere utilizzate in qualsiasi punto all'interno dell'oggetto (o in alcuni casi all'esterno)

VAR

Variabili globali, che possono essere utilizzate all'interno dell'oggetto.

OBJ

Dichiarazione degli oggetti già esistenti che verranno utilizzati all'interno di questo oggetto. Dichiarando l'utilizzo di un oggetto all'interno di questo blocco, si avrà automaticamente accesso ai metodi previsti nell'oggetto che si desidera includere.

PUB

Dichiarazione di un metodo di tipo Pubblico. Questo metodo, contenente routines di codice, è accessibile sia all'interno che all'esterno dell'oggetto. Tutti gli oggetti devono avere almeno un metodo di tipo pubblico.

PRI

Dichiarazione di un metodo di tipo Privato. Questo metodo, contenente routines di codice, è accessibile (e quindi eseguibile) solo all'interno dell'oggetto.

DAT

Dichiarazione di Blocco dati. Può contenere blocchi di dati sotto forma di tabelle, memory buffers, o parti di programma scritte in codice Assembly.

 

 

Parte 1 - Introduzione al P8X32A Indice Parte 3 - Esercizio#1


 

 
Cod.33210
Sistema di sviluppo molto compatto per il chip Propeller P8X32A-M44 con interfaccia USB utilizzabile anche come modulo per i prototipi.
Ulteriori info:
http://www.elettroshop.com/dettagli.asp?pid=1629
Acquista ora questo prodotto su

a € 80.10
+iva
invece di € 89.00+iva
RISPARMI IL 10%

Q.ta
 
Cod.32311

Kit accessori Propeller: Mini Tastiera (PS/2), Mouse ottico (PS/2), LCD 2.5"

Ulteriori info:
http://www.elettroshop.com/dettagli.asp?pid=1153
Acquista ora questo prodotto su

a € 125.10
+iva
invece di € 139.00+iva
RISPARMI IL 10%

Q.ta
 
Cod.32300

Scheda di sviluppo per Propeller, con programmatore USB

Ulteriori info:
http://www.elettroshop.com/dettagli.asp?pid=1160
Acquista ora questo prodotto su

a € 103.50+iva

invece di € 115.00+iva
RISPARMI IL 10%

Q.ta
 
Cod.P8X32A-D40

Microprocessore Propeller DIL 40 P8X32A-40

Ulteriori info:
http://www.elettroshop.com/dettagli.asp?pid=1149
Acquista ora questo prodotto su

a € 8.01
+iva
invece di € 8.90+iva
RISPARMI IL 10%

Q.ta
 
Cod.ESP8X32A-Q44

Microprocessore Propeller QFTP P8X32A-Q44

Ulteriori info:
http://www.elettroshop.com/dettagli.asp?pid=1150
Acquista ora questo prodotto su

a € 8.01+
iva
invece di € 8.90+iva
RISPARMI IL 10%

Q.ta
 
Cod.ES122-32000

Manuale tecnico del microcontrollore Propeller

Ulteriori info:
http://www.elettroshop.com/dettagli.asp?pid=1163
Acquista ora questo prodotto su

a € 35.10
+iva
invece di € 39.00+iva
RISPARMI IL 10%

Q.ta
 
Cod.3ES32111

Propeller Professional Development Board
Board di sviluppo professionale per Propeller

Documentazione: [Link]
Schema elettrico: [Link]
Acquista ora questo prodotto su

a € 170.55
+iva
invece di € 189.50+iva
RISPARMI IL 10%

Q.ta
 
Cod.ES32212

E' una scheda millefori con dimensioni 8x10 cm, con incluso un Propeller gia' saldato, la Eeprom da 64 KB, l'alimentatore a 5 e 3,3 volt, una zona predisposta per il montaggio del connettore VGA e quelli per mouse e tastiera


Acquista ora questo prodotto su

a € 31.50
+iva
invece di € 35.00+iva
RISPARMI IL 10%

Q.ta
 
Cod.130-32212



Componenti sciolti: tra cui un blocco (come nei PC) che contiene connettore VGA e due connettori PS2 e le resistenze per il collegamento al Propeller, che si sposano con la propeller Proto Board

Acquista ora questo prodotto su

a € 19.35+iva
invece di € 21.50+iva
RISPARMI IL 10%

Q.ta
 
Cod.32201

 

 

 E' l'adattatore USB/seriale per poter programmare il Parallax per mezzo della USB            

Acquista ora questo prodotto su

a € 26.55+iva
invece di € 29.50+iva
RISPARMI IL 10%

Q.ta
 
Cod.32305

 

Contiene un libro, il Prop Plug, una breadboard, un
Propeller a 40 pin e componenti sciolti, una scatola di plastica che contiene la breadboard e tutti i componenti sciolti

Acquista ora questo prodotto su

a € 103.50+iva
invece di € 115.00+iva
RISPARMI IL 10%

Q.ta
 
Cod.32100

Scheda di sviluppo per Propeller 44 pin QFP

Ulteriori info:
http://www.elettroshop.com/dettagli.asp?pid=1159
Acquista ora questo prodotto su

a € 80.55+iva

invece di € 89.50+iva
RISPARMI IL 10%

Q.ta
  Cloud
 Elettronicamente.com  PICmicro  RS232 FT232 P8X32A Parallax PIC16F84 Programmatore Elettronica PCB Circuito Stampato Fotoincisione Microchip PIC16F876 Linguaggio AVR Linux NE555 ARM HD44780 DISPLAY LCD Alimentatore XE164 Infineon LED Amplificatore Laboratorio Resistenza Condensatore Termometro PWM relazione
www.Elettronicamente.com
Utenti attualmente connessi:
(Nessuno)