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 #704  Tutorials
Propeller P8X32A - Parte 3 - Esercizio#1   07/03/2009
In questo esempio proveremo ad applicare un piccolo codice che esegue un semplice lampeggio di un LED. Ovviamente il propeller è in grado di eseguire operazioni molto più complesse, ma per chi si accinge per la prima volta al mondo della programmazione è meglio che parta da una applicazione semplice. Il codice verrà poi modificato fino ad un certo livello di complessità fino a comprendere come interagiscono i Cog tra loro e con la memoria principale.
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.


Esercizio#1 - Il primo programma, lampeggio di un LED - Output.spin  

Dopo aver compreso l'architettura generale del propeller e dei suoi 'tool' di sviluppo, il modo migliore per imparare è sicuramente quello di cominciare subito a prendere famigliarità con il linguaggio ed il compilatore. In questo esempio proveremo ad applicare un piccolo codice che esegue un semplice lampeggio di un LED. Ovviamente il propeller è in grado di eseguire operazioni molto più complesse, ma per chi si accinge per la prima volta al mondo della programmazione è meglio che parta da una applicazione semplice. Il codice verrà poi modificato fino ad un certo livello di complessità fino a comprendere come interagiscono i Cog tra loro e con la memoria principale.
 

PUB Toggle

  dira[16]~~
  repeat
    !outa[16]
    waitcnt(3_000_000 + cnt)
 

Nella prima riga abbiamo dichiarato un 'metodo' chiamato 'Toggle'. Nei linguaggi 'object-oriented', un metodo è un termine per chiamare una 'procedura' o 'routine'. Il nome assegnato al metodo (Toggle) è stato scelto per ricordare cosa fa la routine, ma avremmo potuto scegliere anche un altro nome. Il prefisso 'PUB' indica che il metodo è di tipo 'Pubblico', ovvero può essere richiamato per l'esecuzione internamente o esternamente a questo file (o oggetto). Quando sono presenti più metodi di tipo 'PUB', il primo è sempre quello eseguito all'inizio, ammesso che il file in questione sia il 'Top Object File', ovvero il principale da eseguire nella gerarchia del progetto, oppure il progetto corrente è composto da un solo file.

La prima istruzione dira[16]~~ imposta il bit 16 della porta come output, in quanto il simbolo DIRA gestisce il registro delle direzioni I/O (da 0 a 32). Sarebbe stato equivalente scrivere dira[16] := 1.
La seconda istruzione (repeat) è l'inizio di una dichiarazione di un ciclo, in questo caso infinito perchè non ci sono parametri aggiuntivi. Da questo punto in poi, tutto il codice scritto all'interno del ciclo verrà eseguito in modo sequenziale all'infinito. L'istruzione !outa[16] esegue una operazione di I/O sul bit 16 della porta. Ad ogni esecuzione inverte lo stato logico passando da VSS a VCC e vice-versa. Il carattere '!' posto prima dell'istruzione indica che deve essere impostata la condizione logica contraria (in questo caso riferito al bit 16 della porta). L'ultima istruzione (waitcnt) ferma l'esecuzione del Cog per un tempo pari a 3 milioni di cicli. WAITCNT sta per: Wait System Clock, mentre 'cnt' ritorna il valore corrente del contatore clock di sistema. Tutta la riga 'waitcnt(3_000_000 + cnt)' significa: "Attendi il valore di clock di sistema a partire dal valore di clock corrente più i 3 milioni di cicli". In questo esempio non è stato specificato alcun valore del quarzo, quindi il propeller per default viene alimentato da un clock interno di circa 12Mhz. Con questo valore di clock, l'attesa per i 3 milioni di cicli è di circa 1/4 di secondo.
Ora potete salvare il file [CTRL+S]. Per l'esecuzione e l'invio del programma alla RAM del propeller premete F10.

 

Dove viene eseguito il programma ?
 



 

Il propeller come già accennato ha internamente otto identici processori chiamati "Cog". Ciascun Cog può essere avviato e fermato da un programma in esecuzione e può lavorare in modo indipendente o cooperativo con altri Cog secondo le necessità. Le due modalità possono cambiare anche durante l'esecuzione del programma. Nell'esempio non è stato specificato in quale Cog deve essere eseguito il programma, ma per capire meglio come funziona il propeller, spieghiamo sinteticamente la sequenza di 'boot-up'.

All'accensione, solo il primo Cog entra in funzione (Cog 0), dalla ROM viene caricato il bootloader nella RAM del Cog e viene verificato se un collegamento con il PC è richiesto. Successivamente il Cog0 verifica se un programma in EEPROM (esterna) è disponibile e deve essere caricato nella RAM principale. Infine l'interprete SPIN viene caricato dalla ROM nella RAM del Cog e quindi l'applicazione contenuta nella RAM viene finalmente eseguita. Fino a questo punto gli altri Cog rimangono in un stato 'dormiente' fintanto che il programma non ne richieste l'utilizzazione per eseguire dei task indipendenti.

 

Parte 2 - L'ambiente di sviluppo
Indice Parte 3 - Esercizio#2


 

 
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)