MICROCONTROLLORI: UN PROGRAMMA PASSO

Размер: px
Начинать показ со страницы:

Download "MICROCONTROLLORI: UN PROGRAMMA PASSO"

Транскрипт

1 Steve Blackbird (TardoFreak) MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 14 February 2012 Iniziare a sperimentare con un microcontrollore è più facile a dirsi che a farsi, soprattutto per un principiante. E' molto facile trovarsi immediatamente di fronte ad un programma che non fa quello che dovrebbe. Se poi non si ha a disposizione un emulatore in grado di eseguire il programma passo per passo la difficoltà sembra insuperabile. In questo breve articolo illustrerò un metodo semplice per iniziare a scrivere programmi partendo da una base, ampliandolo passo per passo ed utilizzando alcuni accorgimenti e trucchetti per monitorarne in qualche modo l' esecuzione. E' un metodo che ho usato molti anni fa (ma a dire il vero lo uso ancora) quando avere un emulatore che permetteva di eseguire il programma passo per passo direttamente sul sorgente in C era un miraggio o era un qualcosa di irraggiungibile visti i costi. Per illustrare il tutto userò il linguaggio C per sviluppare per il microcontrollore AT90USB1287 (per comodità in quanto si tratta della scheda Pierin che ho già montata e inserita in una breadborad) con Atmel AVR Studio 4 (ma anche studio 5 va benone) ed utilizzando il bootloader USB che la Atmel programma nel micro direttamente in fabbrica unitamente al software FLIP La partenza Come partenza uso sempre un main vuoto e scrivo il classico programma "Hello world" alla maniera del microcontrollore: fargli alzare ed abbassare un PIN di uscita in un ciclo infinito. E' il sistema più semplice per fare un minimo di programma che funzioni. Per verificarne il funzionamento uso l' oscilloscopio guardando il PIN utilizzato. Se questo genera la sua bella onda quadra, continua e stabile vuol dire che il micro funziona, il programma funziona e che da qui in poi potrò aggiungergli vari pezzi per realizzare il mio programma definitivo. Quindi chiamo AVR Studio 4, creo un nuovo progetto gcc, seleziono la cartella di destinazione, il micro e visto che non uso emulatori sceglierò l' AVR simulator. Nel main ci scrivo questo semplice programma. #include <avr/io.h> #include <avr/wdt.h> #include <avr/pgmspace.h> MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 1

2 int main(void) // disabilita watchdog MCUSR &= ~(1 << WDRF); wdt_disable(); // Predispone la porta B con uscita su bit 0 DDRB = 0x01; while(1) PORTB ^= 0x01; return(0); // Non serve a niente ma bisogna metterlo Come prima cosa disabilito il watchdog perché per adesso non mi serve, anzi mi andrebbe a complicare la vita. Visto che nel Pierin non ho la possibilità di andare a pacioccare i fuses lo faccio usando una funzione di libreria del gcc. La seconda cosa che faccio è decidere arbitrariamente che il PIN 0 della porta B sarà un' uscita, quello che andrò a guardare con l' oscilloscopio, il PIN 10. Poi scrivo un ciclo infinito che mi cambia di stato il bit 0 di PORTB con un' operazione di EXOR (or esclusivo). Compilo Lancio il programma FLIP Inserisco il cavo USB nel connettore del Pierin Mentre tengo premuto il tasto BOOT premo il tasto RES (il PC mi fa il suono dell' USB) Scelgo sul programma FLIP l' AT90USB1287 Scelgo come porta l' USB e la apro Dal menù file carico il file.hex che si trova nella sottocartella "default" Premo il tasto "Run" per programmare il micro. Programmato, OK! Premo "Start Application" e controllo con l' oscilloscopio. Magia delle magie sul pin 10 ci trovo un bella onda quadra. PROGRAMMA FUNZIONANTE! Ora è tempo d' ingrandirlo un po'. La seriale Usare la seriale è quanto di più comodo e utile per poter sviluppare un programma e verificarne il corretto funzionamento di tutta la baracca. Il problema più frequente MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 2

3 è quello di visualizzare i vari passaggi ed il valore di variabili mentre il programma è in esecuzione. Avere a disposizione una linea seriale vuol dire avere a disposizione un sistema per visualizzare in qualche modo, su terminale, qualsiasi cosa e per deduzione capire dove il programma incontra un errore. Per prima cosa devo capire bene come funziona la seriale del micro con cui sto lavorando e per fare questo non c'è niente di meglio da fare che aprire il datasheet (7593K AVR 11/09). Scopro quindi che il micro in questione ha una USART che può funzionare in parecchi modi. Inizialmente questo potrebbe creare confusione ma leggendo a fondo tutta la sezione ed andando a guardare i registri che ne regolano il funzionamento tutto diventa più chiaro. A pagina 181 (Capitolo 18) ho l' elenco delle caratteristiche dell' USART. Nella pagina dopo (182) ho lo schema a blocchi e su questo mi fermo a ragionare. USART.jpg In alto trovo un blocco chiamato Clock Generator. In effetti per poter far funzionare l' USART ma soprattutto per fare in modo che funzioni alla giusta velocità (quella che imposterò sul terminale) avrò bisogno di intervenire su un registro in particolare: l' UBRR. Vedremo poi come, per adesso vado avanti a leggere il datasheet dove scopro che l' USART può funzionare in diversi modi. Il modo che interessa a me è Normal MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 3

4 asyncronous (normale asincrono). A pagina 183 è spiegato nel dettaglio il modulo che genera il clock, il Baud Rate Generator, e a pagina 184 c'è anche una tabella con le formule da utilizzare per trovare il valore che devo scrivere dentro l' UBRR. Come velocità di comunicazione scelgo arbitrariamente 9600 baud e, visto che userò l' USART nel modo più normale che c'è, la formula a cui devo fare riferimento è la prima: Dove BAUD è la mia velocità di comunicazione e UBRR è il valore che devo scrivere nel registro a 12 bit per avere quella velocità. Visto che il clock di sistema è 8MHz (lo so perché il Pierin su cui sto facendo le prove monta un quarzo da 8MHz.) il valore che otterrò è di 51,083 che approssimerò a 51. Bene, quando sarà il momento dentro a UBRR ci scriverò 51. Continuando a leggere il datasheet mi imbatto poi, a pagina 187, in un esempio di inizializzazione. Sembra semplice ma voglio verificare che non ci sia qualcosa di particolare da impostare per fare in modo che tutto funzioni come voglio io, e precisamente: Velocità 9600 BAUD 8 bit di dati Nessuna parità 1 bit di stop Più normale di questo non c'è niente. Dicevo che quello che mi rimane da fare è andare a dare uno sguardo ai registri dell' USART che trovo belli in mostra a partire da pagina 198. Scopro così che c'è un solo registro per la trasmissione e la ricezione e che si chiama UDR. Su questo dovrò scrivere il carattere che voglio trasmettere e da questo leggerò il carattere ricevuto. Nella pagina seguente trovo il registro UCSRnA dove n indica l' USART (in questo micro ce n'è una sola perciò n vale sempre 1). Due bit sono quelli che m' interessano: RXCn (USART Receive Complete) che mi indica l' avvenuta ricezione di un carattere e TXCn (USART Transmit Complete) che mi indica l' avvenuta trasmissione. Gli altri posso anche non prenderli in considerazione visto che quello che voglio fare inizialmente è fare almeno uscire correttamente un carattere dall' USART. A pagina 200 c'è il secondo registro di controllo e in questo registro vedo che i bit che m' interessano sono RXENn (Receiver Enable) che mi abilita il ricevitore e TXENn (Transmitter Enable) che mi abilita il trasmettitore. Questi due bit li dovrò mettere ad 1 per abilitare trasmissione e ricezione. Per ora passo oltre alle varie interrupt perché non m' interessano. L' ultimo registro da guardare è l' UCSRnC e con gioa scopro che per fare quello che mi interessa basta che lo lasci così come è nella condizione di default. Più avanti trovo anche la conferma del calcolo che ho fatto per il valore di UBRR. Nella tabella delle velocità in relazione alla frequenza di clock scopro che il valore da caricare in questo registro è proprio 51. Figo! MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 4

5 A questo punto non mi resta altro da fare che prendere l' esempio di inizializzazione ed inserirlo nel programma che diventerà questo: #include <avr/io.h> #include <avr/wdt.h> #include <avr/pgmspace.h> int main(void) // disabilita watchdog MCUSR &= ~(1 << WDRF); wdt_disable(); // Predispone la porta B con uscita su bit 0 DDRB = 0x01; // Inizializza la seriale per 9600 baud 8 bit 1 stop no parità // Come lunghezza della parola, parità e stop vanno bene i // valori di default // Imposta il valore del baud generator // Il valore di UBRR1 = (Fosc/(16 * BAUD)) -1. // Con clock a 8 MHz. per 9600 baud = 51 UBRR1H = 0; UBRR1L = 51; // Accende trasmettitore e ricevitore UCSR1B = (1<<RXEN1) (1<<TXEN1); while(1) PORTB ^= 0x01; if(ucsr1a & (1<<UDRE1)) // Guarda se TX register vuoto UDR1 = 'A'; return(0); // Non serve a niente ma bisogna metterlo Per poter usare la seriale devo però costruirmi un circuitino che mi trasli i livello RS232 in livelli adatti al micro. Per far questo realizzo un semplice circuito con un ST202 montato su millefori con un connettore a 4 pin (GND, 5V, TX e RX). MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 5

6 Il terminale MPU-TX l' ho collegato al pin 28 (TXD1) ed il terminale MPU-RX al pin 27 (RXD1). Non resta altro che provare il programma. Teoricamente, una volta fatto partire, dovrei ritrovarmi lo schermo del terminale che si riempie di lettere A e dovrei trovare ancora una specie di onda quadra un po' sgangherata (ogni tanto il micro esegue l' istruzione di caricamento del registro della seriale) ma dovrei trovarla. Lancio quindi il programma Hyper Terminal (qualsiasi programma di terminale va bene), imposto 9600 BAUD, 8 bit, no parità, nessun controllo di handshake e connetto. Compilazione, caricamento, fuoco alle polveri... lo schermo si riempie di "A" una di seguito all' altra. PROGRAMMA FUNZIONANTE! Ed ora gli diamo una sistemata e gli aggiungiamo qualcosa di altro che ci serva per la programmazione. Qualche utile funzione Bene! Abbiamo la seriale che funziona, almeno in uscita, ed ora sistemiamo un po' le cose in modo da scrivere qualche funzione da poter inserire nel programma in modo da avere dei punti in cui possiamo visualizzare qualcosa qualora ce ne fosse bisogno. Per prima cosa scriviamo una funzione per inviare un carattere sulla seriale, la chiameremo serialwritechar e subito dopo scriviamo una funzione per stampare una stringa di caratteri che chiameremo serialwritestring. A questo punto la parte MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 6

7 di programma che continua a scrivere la "A" sul terminale non c' interessa più e possiamo eliminarla. #include <avr/io.h> #include <avr/wdt.h> #include <avr/pgmspace.h> // serialwritechar(char ch) // Scrive un carattere nella linea seriale. Se il buffer di trasmissione non // è ancora vuoto aspetta fino a quando il flag UDRE1 di USCR1B diventa attivo // e poi scrive il carattere. void serialwritechar(char ch) while(!(ucsr1a & (1<<UDRE1))); // Aspetta che il TX register sia vuoto UDR1 = ch; // serialwritestring(char *s) // Scrive il contenuto di una stringa di caratteri nella linea seriale void serialwritestring(char *s) while(*s) serialwritechar(*s); s++; int main(void) // disabilita watchdog MCUSR &= ~(1 << WDRF); wdt_disable(); // Predispone la porta B con uscita su bit 0 DDRB = 0x01; // Inizializza la seriale per 9600 baud 8 bit 1 stop no parità // Come lunghezza della parola, parità e stop vanno bene i // valori di default MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 7

8 // Imposta il valore del baud generator // Il valore di UBRR1 = (Fosc/(16 * BAUD)) -1. // Con clock a 8 MHz. per 9600 baud = 51 UBRR1H = 0; UBRR1L = 51; // Accende trasmettitore e ricevitore UCSR1B = (1<<RXEN1) (1<<TXEN1); serialwritechar(0x0c); // Cancella lo schermo del terminale serialwritestring("prova di scrittura su seriale\n\r"); serialwritestring("seconda linea\n\r"); while(1) PORTB ^= 0x01; return(0); // Non serve a niente ma bisogna metterlo Una volta compilato, caricato e fatto partire questo programma produrrà un output sul terminale come questo. term01.jpg Come si può notare sto andando avanti un passo per volta, scrivendo la funzione e poi provandola immediatamente. Questo sistema può sembrare inefficiente ma permette di avere la sicurezza che le funzioni scritte siano funzionanti perché immediatamente testate. Quello che ci manca ancora è uno straccio di funzione che ci permetta di visualizzare un numero intero in notazione decimale, quindi la scriviamo proprio sopra il main. Già che ci siamo facciamo che metterci come argomento un unsigned long int in modo da poter visualizzare qualsiasi tipo di variabile intera (char, int, long MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 8

9 int). Se come argomento gli passiamo, ad esempio, un unsigned char il compilatore effettuerà un' operazione di castin e tutto andrà liscio senza che noi ce ne preoccupiamo // void serialwriteulong(unsigned long int valore) // Stampa su seriale il valore unsigned long int convertito in decimale void serialwriteulong(unsigned long int valore) unsigned char fine,i; char cifra; char s[10]; // cancella la stringa for(i=0; i<10; i++) s[i] = 0; fine = 0; i = 9; while(!fine) cifra = valore % 10; s[i] = cifra + '0'; i--; valore /= 10; if (valore == 0) fine = 1; // scrive i caratteri for(i=0; i<10; i++) if(s[i]) serialwritechar(s[i]); Ed aggiungiamo anche qualche linea sul main dopo le istruzioni di scrittura delle stringhe per provare immediatamente la funzione. serialwritestring("valore numerico: "); serialwriteulong(1234); serialwritestring("\n\r"); unsigned char i; for(i=0;i<10;i++) serialwriteulong(i); MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 9

10 serialwritestring("\n\r"); Solita storia (compilazione, caricamento, fuoco alle polveri) e ci ritroviamo con questo output. term02.jpg E così possiamo anche visualizzare il valore delle variabili. Un ultimo sforzo e scriviamo anche la funzione per scrivere quelle con segno negativo // void serialwritelong(long int valore) // Stampa su seriale il valore long int convertito in decimale void serialwritelong(long int valore) if(valore<0) serialwritechar('-'); valore = -valore; serialwriteulong(valore); Per provarla (provare SEMPRE la funzione appena scritta) mettiamo come commento la linea che stampa il valore numerico 1234 e ne aggiungiamo una per provare la funzione //serialwriteulong(1234); serialwritelong(-1234); MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 10

11 Tutto bene ma manca ancora una cosetta: la possibilità di fermare il programma in un certo punto per aspettare la pressione di un tasto dalla tastiera del terminale. La cosa più semplice da fare è andare a guardare il datasheet (dove si trova tutto) perché a pagina 191 c'è un esempio di lettura da seriale scritto in C. Traendo spunto dall' esempio scriviamo la funzione che andremo a mettere proprio sopra il main. // char serialreadchar(void) // Aspetta che ci sia un dato pronto nel registro di ricezione e // ritorna tale dato come char char serialreadchar(void) // Attende che sia presente un dato nel registro di ricezione while(!(ucsr1a & (1<<RXC1))); return(udr1); Proviamola subito inserendo questa linea, ad esempio, prima dell' istruzione che stampa il valore numerico serialreadchar(); // Il micro si ferma in attesa della pressione di un tasto serialwritestring("valore numerico: "); //serialwriteulong(1234); serialwritelong(-1234); serialwritestring("\n\r"); Lanciamo il programma e verifichiamo che questo si blocca dopo aver scritto le due linee "Prova di scrittura su seriale" e "Seconda linea". Premiamo un tasto qualsiasi sulla tastiera e dopo compare tutto. Direi che ci siamo! Abbiamo lo scheletro di un programma funzionante con le funzioni utili per il debug che possiamo inserire in qualsiasi punto del programma. Abbiamo quindi l' opportunità di fermare il programma (ad esempio per verificare lo stato di pin di I/O) e di visualizzare messaggi e visualizzare il valore delle variabili per scovare un eventuale errore. Conclusioni Per adesso mi fermo qui. Sicuramente questo metodo per scrivere i programmi non è certo quello che viene insegnato nei Sacri Testi ma è efficiente e sicuro e, se vogliamo, anche divertente perché si tratta in fondo di una sperimentazione continua. Bisogna partire da poco per arrivare a molto provando di volta in volta quello che si scrive. E' un metodo empirico ma personalmente lo trovo molto efficace e di sicuro funzionamento. Chiaramente, andando avanti di questo passo, è quasi scontato che sia arrivi ad un punto in cui si avrà la necessità di riscrivere il programma da capo, MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 11

12 magari per organizzarlo meglio, ma non è lavoro sprecato. Le funzioni scritte e provate restano, come resta lo scheletro. E' tutto materiale buono che può essere riutilizzato senza timore, anzi con la sicurezza di avere "snippet" di sorgente di sicuro funzionamento. C' è anche da dire che questo modo di scrivere programmi era la normalità in passato, quando si avevano solo a disposizione schede di valutazione senza emulatori ne debuggers. Quello che si cercava di avere era appunto una seriale, una porta semplice e potente verso un terminale. In mancanza di questa si faceva in altri modi, ma la seriale restava la soluzione migliore. Fortunatamente oggi i micro, per piccoli che siano, hanno sempre a disposizione una seriale che porta via due pin di I/O quindi possiamo dire "Fate attenzione! Ho una seriale, e non ho paura ad usarla!" :) Qui di seguito metto il sorgente di tutto il programma. Per provarlo basta semplicemente copiarlo nel file main.c del progetto e compilarlo. Funziona davvero perché l' ho scritto mentre scrivevo quest' articolo. La sequenza dei passaggi è proprio quella che ho utilizzato e questo è il risultato. #include <avr/io.h> #include <avr/wdt.h> #include <avr/pgmspace.h> // serialwritechar(char ch) // Scrive un carattere nella linea seriale. Se il buffer di trasmissione non // è ancora vuoto aspetta fino a quando il flag UDRE1 di USCR1B diventa attivo // e poi scrive il carattere. void serialwritechar(char ch) while(!(ucsr1a & (1<<UDRE1))); // Aspetta che il TX register sia vuoto UDR1 = ch; // serialwritestring(char *s) // Scrive il contenuto di una stringa di caratteri nella linea seriale void serialwritestring(char *s) while(*s) serialwritechar(*s); s++; MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 12

13 // void serialwriteulong(unsigned long int valore) // Stampa su seriale il valore unsigned long int convertito in decimale void serialwriteulong(unsigned long int valore) unsigned char fine,i; char cifra; char s[10]; // cancella la stringa for(i=0; i<10; i++) s[i] = 0; fine = 0; i = 9; while(!fine) cifra = valore % 10; s[i] = cifra + '0'; i--; valore /= 10; if (valore == 0) fine = 1; // scrive i caratteri for(i=0; i<10; i++) if(s[i]) serialwritechar(s[i]); // void serialwritelong(long int valore) // Stampa su seriale il valore long int convertito in decimale void serialwritelong(long int valore) if(valore<0) serialwritechar('-'); valore = -valore; serialwriteulong(valore); // char serialreadchar(void) MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 13

14 // Aspetta che ci sia un dato pronto nel registro di ricezione e // ritorna tale dato come char char serialreadchar(void) // Attende che sia presente un dato nel registro di ricezione while(!(ucsr1a & (1<<RXC1))); return(udr1); int main(void) // disabilita watchdog MCUSR &= ~(1 << WDRF); wdt_disable(); // Predispone la porta B con uscita su bit 0 DDRB = 0x01; // Inizializza la seriale per 9600 baud 8 bit 1 stop no parità // Come lunghezza della parola, parità e stop vanno bene i // valori di default // Imposta il valore del baud generator // Il valore di UBRR1 = (Fosc/(16 * BAUD)) -1. // Con clock a 8 MHz. per 9600 baud = 51 UBRR1H = 0; UBRR1L = 51; // Accende trasmettitore e ricevitore UCSR1B = (1<<RXEN1) (1<<TXEN1); serialwritechar(0x0c); // Cancella lo schermo del terminale serialwritestring("prova di scrittura su seriale\n\r"); serialwritestring("seconda linea\n\r"); serialreadchar(); // Il micro si ferma in attesa della pressione di un tasto serialwritestring("valore numerico: "); //serialwriteulong(1234); serialwritelong(-1234); serialwritestring("\n\r"); unsigned char i; for(i=0;i<10;i++) MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 14

15 serialwriteulong(i); serialwritestring("\n\r"); while(1) PORTB ^= 0x01; return(0); // Non serve a niente ma bisogna metterlo Buona sperimentazione a tutti! Addendum. Alcune funzioni utili Inserisco qui di seguito alcune funzioni utili per l' uso della seriale. 20 Febbraio Questa funzione serve per visualizzare valori in esadecimale a 8 bit // void serialwritehexuchar(unsigned char valore) // Stampa il valore di un unsigned char in esadecimale con gli zeri non significativ void serialwritehexuchar(unsigned char valore) char cifra,i; char s[2]; cifra = valore >> 4; if (cifra<10) s[0] = cifra + '0'; else s[0] = cifra + 55; cifra = valore & 0x0f; if (cifra<10) s[1] = cifra + '0'; else s[1] = cifra + 55; // scrive i caratteri for(i=0; i<2; i++) serialwritechar(s[i]); La stessa funzione di prima ma che visualizza valori a 32 bit. La versione a 16 bit può essere facilmente ottenuta modificando questa // void serialwritehexulong(unsigned long int valore) MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 15

16 // Stampa su seriale il valore unsigned long int convertito in esadecimale void serialwritehexulong(unsigned long int valore) char fine,i; char cifra; char s[8]; // cancella la stringa for(i=0; i<8; i++) s[i] = '0'; fine = 0; i = 7; while(!fine) cifra = valore % 16; if (cifra<10) s[i] = cifra + '0'; else s[i] = cifra + 55; i--; valore /= 16; if (valore == 0) fine = 1; // scrive i caratteri for(i=0; i<8; i++) serialwritechar(s[i]); Estratto da " index.php?title=userspages:tardofreak:mircrocontrollori-un-programma-passo-perpasso" MICROCONTROLLORI: UN PROGRAMMA PASSO PER PASSO 16

Corso di programmazione Arduino DI MALVEZZI DAVIDE

Corso di programmazione Arduino DI MALVEZZI DAVIDE Corso di programmazione Arduino DI MALVEZZI DAVIDE Argomenti Pin digitali e pin analogici Gestione di timer e bottoni Utilizzo della porta seriale Oggetto String Controllo di schermi LCD Utilizzo dell

Подробнее

Comunicazioni seriali (parte seconda)

Comunicazioni seriali (parte seconda) Comunicazioni seriali (parte seconda) Antonio Elio Marino ITIS Marconi Pontedera (PI) 19 marzo 2017 versione 1.0 Contents 1 RS-232 2 1.1 Trasmissione............................... 3 1.2 Ricezione................................

Подробнее

Facciamo lampeggiare un led

Facciamo lampeggiare un led Facciamo lampeggiare un led Passiamo a fare qualche esercizio, il più semplice per iniziare a programmare con Arduino è il canonico esercizio blink, che trovate anche negli esempi del programma. Si tratta

Подробнее

COMUNICAZIONE SERIALE a cura dell' Ing. Buttolo Marco

COMUNICAZIONE SERIALE a cura dell' Ing. Buttolo Marco COMUNICAZIONE SERIALE a cura dell' Ing. Buttolo Marco Un PC può comunicare in vari modi con le periferiche. Fondamentalmente esistono due tipi di comunicazione molto comuni: 1. La comunicazione seriale

Подробнее

Debug di un programma

Debug di un programma Debug di un programma Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal

Подробнее

PER UTILIZZARE LCC IN LAB

PER UTILIZZARE LCC IN LAB PER UTILIZZARE LCC IN LAB La prima volta che un utente utilizza lcc-win32 deve impostare una chiave nel registro utente. Per fare questo occorre semplicemente: Aprire con il gestione risorse la cartella

Подробнее

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} } ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il

Подробнее

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Подробнее

USART PIC 16F876. R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0 CSRC TX9 TXEN SYNC _ BRGH TRMT TX9D Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

USART PIC 16F876. R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0 R-1 R/W-0 CSRC TX9 TXEN SYNC _ BRGH TRMT TX9D Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 USART PIC 16F876 L USART (Universal Synchronous Asynchronous Receiver Trasmitter) è uno dei due moduli di I/O seriali, esso è conosciuto anche come Serial Comunications Interface (SCI). L USART può essere

Подробнее

Introduzione a Visual Studio 2005

Introduzione a Visual Studio 2005 Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Introduzione a Visual Studio 2005 Outline Solutions e Projects Visual Studio e il linguaggio C Visual Studio Schermata

Подробнее

Domino - Contatto. BootTools - Aggiornamento Firmware dei moduli Domino - Contatto

Domino - Contatto. BootTools - Aggiornamento Firmware dei moduli Domino - Contatto Introduzione BootTools è il nuovo software universale per l'aggiornamento firmware dei moduli Domino e Contatto. Le interfacce tra PC e campo supportate per l'aggiornamento sono: DFRS, DFUSB, DFPRO, WEBS

Подробнее

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Подробнее

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Подробнее

Bus RS-232. Ing. Gianfranco Miele April 28, 2011

Bus RS-232. Ing. Gianfranco Miele  April 28, 2011 Ing. Gianfranco Miele ([email protected]) http://www.docente.unicas.it/gianfranco_miele April 28, 2011 Alcune definizioni Comunicazione seriale Bit trasmessi in sequenza Basta una sola linea Più lenta

Подробнее

EEPROM SERIALI IN I2C BUS.

EEPROM SERIALI IN I2C BUS. Corso di BASCOM 8051 - (Capitolo 3 0 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. EEPROM SERIALI IN I2C BUS. Tra i dispositivi più utilizzati, nelle applicazioni

Подробнее

Uno dei metodi più utilizzati e

Uno dei metodi più utilizzati e TEORIA MHZ RISORSE SPECIALE PRATICA Quinta parte n 257 - Novembre 2006 Realizzazione di un timer digitale programmabile Sesta parte n 258 - Dicembre 2006 Uso delle interfacce seriali Settima parte n 259

Подробнее

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative

Подробнее

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Подробнее

Variabili e Istruzioni

Variabili e Istruzioni Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome

Подробнее

Il compilatore Dev-C++

Il compilatore Dev-C++ Il compilatore Dev-C++ Compilatore per Windows: http://www.bloodshed.net/dev/index.html Oppure dal sito: http://web.tiscali.it/no-redirect-tiscali/adinfo/devcpp4970- gcc295.exe Informatica 1 1 Requisiti

Подробнее

Davide Gennaretti, Matteo Nicolini

Davide Gennaretti, Matteo Nicolini Seminario sui Microcontrollori Davide Gennaretti, Matteo Nicolini AA 2003-04 II Facoltà di Ingegneria Elettronica Cesena Cosa sono i microcontrollori? Piccoli computer concentrati in un chip Un Datapath

Подробнее

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22 Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)

Подробнее

Interfaccia seriale per LM709SW

Interfaccia seriale per LM709SW Interfaccia seriale per LM709SW Caratteristiche tecniche : Alimentazione di ingresso : 6.6 VDC 12 VDC Interfaccia di collegamento : RS232 Segnalazione a led di rx e tx seriale Segnalazione a led per errori

Подробнее

Gestione di una UART SOFTWARE.

Gestione di una UART SOFTWARE. Corso di BASCOM 8051 - (Capitolo 3 1 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. Gestione di una UART SOFTWARE. Capita, a volte in alcune applicazioni, di avere

Подробнее

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,

Подробнее

Corso di BASCOM (Capitolo 1 5 ) Corso Teorico/Pratico di programmazione in BASCOM Autore: DAMINO Salvatore. D I S P L A Y L C D (3).

Corso di BASCOM (Capitolo 1 5 ) Corso Teorico/Pratico di programmazione in BASCOM Autore: DAMINO Salvatore. D I S P L A Y L C D (3). Corso di BASCOM 8051 - (Capitolo 1 5 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. D I S P L A Y L C D (3). GESTIONE DI UNA SEMPLICE CALCOLATRICE. Questo programma

Подробнее

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Подробнее

Il generatore di numeri casuali

Il generatore di numeri casuali Il generatore di numeri casuali file di libreria: stdlib.h int rand(void) La funzione restituisce un numero casuale di tipo intero compreso tra 0 e RAND_MAX (estremi compresi) Esempio: scriviamo un programma

Подробнее

perror: individuare l errore quando una system call restituisce -1

perror: individuare l errore quando una system call restituisce -1 perror: individuare l errore quando una system call restituisce -1 Quando una system call (o una funzione di libreria) non va a buon fine, restituisce come valore -1 Come si fa a sapere più precisamente

Подробнее

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Подробнее

Le Funzioni e la Ricorsione

Le Funzioni e la Ricorsione Aula V Dip. di Matematica G. Castelnuovo Univ. di Roma La Sapienza Le Funzioni e la Ricorsione Igor Melatti Slides disponibili (assieme ad altro materiale) in: http://www.dsi.uniroma1.it/ melatti/programmazione1.2007.2008.html

Подробнее

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Подробнее

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto.

Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Sistema C e organizzazione del codice Il sistema C è formato dal linguaggio C, dal preprocessore, dal compilatore, dalle librerie e da altri strumenti di supporto. Un programma C è costituito da un insieme

Подробнее

Progetto 3: Termometro con convertitore A/D

Progetto 3: Termometro con convertitore A/D Progetto 3: Termometro con convertitore A/D Questo progetto dimostra come acquisire un segnale da una sensore di temperatura analogico e visualizzare la temperatura attraverso il collegamento seriale con

Подробнее

Comunicazione. Prof. Antonino Mazzeo. Corso di Laurea Specialistica in Ingegneria Informatica

Comunicazione. Prof. Antonino Mazzeo. Corso di Laurea Specialistica in Ingegneria Informatica Comunicazione Seriale Prof. Antonino Mazzeo Corso di Laurea Specialistica in Ingegneria Informatica UART/USART Intel 8251A Standard Universal Synchronous/Asynchronous Receiver/Trasmitter (USART) Progettata

Подробнее

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici Per ogni lezione, sintetizzare i circuiti combinatori o sequenziali che soddisfino le specifiche date e quindi implementarli e

Подробнее

Lettura da tastiera e scrittura su monitor

Lettura da tastiera e scrittura su monitor Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per

Подробнее

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni Anno Accademico 2011/2012 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un processo utente o dal

Подробнее

Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio.

Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio. Lampeggio di 8 led Vogliamo far lampeggiare i led collegati come in figura ai bit della porta D del PIC 18F8722 presente sulla demo board in dotazione al laboratorio. Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1

Подробнее

DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE

DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE DISPOSITIVO PER LA LETTURA DI UN ENCODER INCREMENTALE Si propone l'uso di un microcontrollore pic16f84 della Microchip. Si acquisiscono i segnali di un encoder con due canali in quadratura con la possibilità

Подробнее

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Подробнее

Le sintonie elettroniche per l ATV

Le sintonie elettroniche per l ATV Le sintonie elettroniche per l ATV II Meeting ATV Magenta 18/04/2004 IW2LFD Luciano Arrigoni [email protected] http://digilander.libero.it/iw2lfd A.R.I. Sezione di Gallarate IQ2GM - http://www.qsl.net/iq2gm/

Подробнее

Le comunicazioni seriali RS232

Le comunicazioni seriali RS232 Le comunicazioni seriali Le comunicazioni seriali richiedono un minimo di due connessioni elettriche per comunicare dati in una direzione. Una linea dati (generalmente o di trasmissione o di ricezione)

Подробнее

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

Подробнее

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Подробнее

COMANDI ITERATIVI. Ivan Lanese

COMANDI ITERATIVI. Ivan Lanese COMANDI ITERATIVI Ivan Lanese Argomenti Comando while Comando do while Comando for Comando while: reminder while (condizione) comando; Semantica: la condizione viene testata: se è vera, viene eseguito

Подробнее

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232 1 Il protocollo RS232 1.1 Introduzione Come noto un dispositivo di interfaccia permette la comunicazione tra la struttura hardware di un calcolatore e uno o più dispositivi esterni. Uno degli obiettivi

Подробнее

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Подробнее

Excel. Il foglio di lavoro. Il foglio di lavoro Questa viene univocamente individuata dalle sue coordinate Es. F9

Excel. Il foglio di lavoro. Il foglio di lavoro Questa viene univocamente individuata dalle sue coordinate Es. F9 Excel Un foglio di calcolo o foglio elettronico è un programma formato da: un insieme di righe e di colonne visualizzate sullo schermo in una finestra scorrevole in cui è possibile disporre testi, valori,

Подробнее

Tutorial su Codelite. Luca Ceriani 2011 Federico Cerutti

Tutorial su Codelite. Luca Ceriani 2011 Federico Cerutti Tutorial su Codelite Luca Ceriani 2011 Federico Cerutti Sommario Creare un nuovo workspace Creare un primo progetto all interno di un workspace

Подробнее

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo [email protected] Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Подробнее

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Подробнее

Esempi di Programmi con TIO 1 6 (1).

Esempi di Programmi con TIO 1 6 (1). Corso di BASCOM 8051 - (Capitolo 1 6 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. Esempi di Programmi con TIO 1 6 (1). Con questo capitolo iniziamo una serie di sperimentazioni

Подробнее

[PRIMA DI VIDEOSCRIVERE ]

[PRIMA DI VIDEOSCRIVERE ] Manuale di preparazione alla videoscrittura per bambini e persone che non hanno mai usato una tastiera. by Cinzia [PRIMA DI VIDEOSCRIVERE ] Una piccola guida di preparazione alla scrittura col computer,

Подробнее

Iniziare a sviluppare usando STM32-comStick di HITEX

Iniziare a sviluppare usando STM32-comStick di HITEX Iniziare a sviluppare usando STM32-comStick di HITEX By E.M. Per sviluppare un nuovo progetto usando il STM32-comStick di HITEX, la cosa più semplice da fare è partire da uno degli esempi forniti da Hitex

Подробнее

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma. Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti

Подробнее

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO III Indice LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 18.III.2015 VINCENZO MARRA Indice Parte 1. L algoritmo euclideo 3 Esercizio 1 3 L algoritmo euclideo

Подробнее

DEC PDP8, III Generazione, '65-'75

DEC PDP8, III Generazione, '65-'75 Parte I DEC PDP8, III Generazione, '65-'75 PDP8 Architettura (Livello Registri) 12 bit Program Counter PC 12 bit Memory Address Register MAR Random Access Memory RAM 4096 x 16 1 bit I 3 bit Operation Code

Подробнее

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Подробнее

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

Подробнее

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style Corso Arduino 2014 21 Maggio 2014 Riccardo Binetti [email protected] Lezione 1 - Blinking LEDs with style Riccardo Binetti Arduino 2014 Lezione 1 1 / 24 Fate domande Riccardo Binetti Arduino 2014 Lezione

Подробнее

Codice Gray. (versione Marzo 2007)

Codice Gray. (versione Marzo 2007) Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.

Подробнее

Tutorial Display LCD e PIC

Tutorial Display LCD e PIC Tutorial Display LCD e PIC Si fa presente per coloro che sono a "digiuno" con la programmazione dei PIC di leggersi il tutorial in questo link http://www.grix.it/viewer.php?page=429 Descrizione Questo

Подробнее

Alfabeto ed elementi lessicali del linguaggio C

Alfabeto ed elementi lessicali del linguaggio C Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Alfabeto ed elementi lessicali del linguaggio C Pietro Di Lena - [email protected] s t a t i c s h o r t l e g s ; i n

Подробнее

Corso di BASCOM (Capitolo 9 ) Corso Teorico/Pratico di programmazione in BASCOM Autore: DAMINO Salvatore. Codice Morse. (3).

Corso di BASCOM (Capitolo 9 ) Corso Teorico/Pratico di programmazione in BASCOM Autore: DAMINO Salvatore. Codice Morse. (3). Corso di BASCOM 8051 - (Capitolo 9 ) Corso Teorico/Pratico di programmazione in BASCOM 8051. Autore: DAMINO Salvatore. Codice Morse. (3). Come precedentemente accennato per utilizzare adeguatamente le

Подробнее

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR

Funzioni. Unità 1. Domenico Daniele Bloisi. Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza [email protected] http://www.dis.uniroma1.it/~salza/fondamenti.htm

Подробнее

ISA Input / Output (I/O) Data register Controller

ISA Input / Output (I/O) Data register Controller ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),

Подробнее

GUIDA ALL INSERIMENTO DI TESTI E DOCUMENTI NEL NUOVO SITO DEL COMUNE DI CERVIA Versione 1.0

GUIDA ALL INSERIMENTO DI TESTI E DOCUMENTI NEL NUOVO SITO DEL COMUNE DI CERVIA Versione 1.0 GUIDA ALL INSERIMENTO DI TESTI E DOCUMENTI NEL NUOVO SITO DEL COMUNE DI CERVIA Versione 1.0 Indice - ACCESSO AL BACKEND DEL SITO WEB e LOGIN - INSERIMENTO FILE IN GESTIONE FILE - INSERIMENTO NEWS Realizzato

Подробнее

Input/Output. Console e File.

Input/Output. Console e File. Input/Output Console e File http://www.dia.uniroma3.it/~roselli/ [email protected] Credits Materiale a cura del Prof. Franco Milicchio Introduzione Le istruzioni di stampa servono a rendere visibili

Подробнее

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani ([email protected])

Подробнее

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: Il Software L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software: un insieme di programmi che permettono di trasformare un insieme di circuiti

Подробнее

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=

Подробнее

Initiative. Ethernet-MPI convertitore e 6180XIO

Initiative. Ethernet-MPI convertitore e 6180XIO OEM Initiative Ethernet-MPI convertitore e 6180XIO MM/MR Ver. 0 22/02/2008 Introduzione La richiesta è di poter collegare un registratore videografico in Ethernet con un PLC Siemens dotato di porta MPI.

Подробнее

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file

Compilazione separata. Come realizzare correttamente un piccolo progetto su piu' file Compilazione separata Come realizzare correttamente un piccolo progetto su piu' file 1 Programmi C su più file Tutti i programmi che abbiamo visto finora erano composti da un unico file.c Nel caso di programmi

Подробнее

Interfaccia RS 232 Tipo: x-101

Interfaccia RS 232 Tipo: x-101 L interfaccia seriale viene utilizzata per collegare un PC all EIB e si monta su un dispositivo di accoppiamento bus da incasso. Può essere collocata in qualunque posizione del sistema. Si collega al PC

Подробнее

Ricevitore Supervisionato RX-24

Ricevitore Supervisionato RX-24 Ricevitore Supervisionato RX-24 Dati tecnici Gestione a microprocessore 24 Sensori memorizzabili 8 Uscite allarme uno per canale 8 Canali con 3 sensori per ogni canale 10 Telecomandi programmabili 1 Uscita

Подробнее

MANUALE PER L OPERATORE Versione software: 1.0

MANUALE PER L OPERATORE Versione software: 1.0 Sesto S. Giovanni - 19 Maggio 2004 Div. elettronica DATAFLOW Rev.1.0 SW-HW:DATALINK SOFTWARE PER L ELABORAZIONE DEI SEGNALI RILEVATI DALLA SCHEDA DI ACQUISIZIONE MANUALE PER L OPERATORE Versione software:

Подробнее

CTU Presenta. Contest Automation con Arduino. IK0XBX - Francesco

CTU Presenta. Contest Automation con Arduino. IK0XBX - Francesco CTU Presenta Contest Automation con Arduino IK0XBX - Francesco Arduino cosa è??? Arduino Uno lo standard Arduino Mega più in/out e 4 seriali Arduino Nano quello tascabile Arduino è una piattaforma open-source

Подробнее

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Подробнее

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Подробнее