E’ disponibile la versione 1.2.0 della libreria swRTC che supporta l’uso del Real-Time Counter (RTC) presente su diverse MCU. Questo modulo permette di utilizzare il timer 2 in modalità asincrona con un quarzo esterno da 32.768 Hz. Impostando il timer con un prescaler a 128, si ha esattamente 1 overflow ogni secondo per cui è possibile incrementare l’orologio …
Archivio Categoria: Varie
mag 06 2013
Nuova toolchain Atmel 3.4.2
Atmel ha aggiornato la sua toolchain (la raccolta di eseguibili e librerie necessaria per compilare i firmware per i suoi microcontrollori) alla versione 3.4.2. Potete scaricare la nuova versione dal sito Atmel (registrazione gratuita) in forma precompilata per Linux o Windows (al momento Atmel non distribuisce i binari precompilati per MacOS X). Una volta scaricato il …
apr 02 2013
Programmiamo i compiti con millis()
Millis() è una funzione del core di Arduino che restituisce il numero di millisecondi trascorsi dall’istante in cui si fornisce l’alimentazione alla scheda. Millis() si basa su di un contatore che viene aggiornato continuamente da un interrupt agganciato al timer 0, e per questo motivo il suo valore cresce costantemente, non essendo influenzato dal codice …
apr 01 2013
Nuovo looper 1.0
Ho rilasciato la versione 1.0 del looper, il mio schedulatore che non usa gli interrupt per lanciare i job dell’utente: nuova sintassi dei metodi, per poter essere usato in abbinamento al leOS; ripulitura del codice grazie a cui gli sketch compilati sono più piccoli; nuovo metodo myDelay che sostituisce la funzione delay di Arduino e …
mar 31 2013
Manipoliamo direttamente le porte logiche di una MCU
Se vogliamo accendere un LED collegato ad un pin dell’Arduino sappiamo che dobbiamo, nell’ordine: 1) impostare il pin come OUTPUT usando il comando pinMode; 2) “scrivere” su quel pin il valore HIGH usando il comando digitalWrite. Sembra semplice ma se andiamo ad analizzare il codice del core di Arduino ci accorgiamo che non lo è. …
mar 31 2013
Nuova swRTC 1.1.0
Nuova versione della libreria swRTC con l’introduzione di due nuovi metodi getDeltaT() e setDeltaT(). Il primo è nuovo, e restituisce il valore corrente della correzione introdotta per allineare il tempo dell’RTC a quello reale. Il secondo è stato invece rivisto ed ora accetta un parametro di tipo int mentre prima il parametro era di tipo …
mar 30 2013
Nuove versioni del leOS e del leOS2
Nuove versioni degli scheduler leOS e leOS2, il primo giunto alla versione 1.1.1 ed il secondo alla versione 2.2.0. Per entrambi si tratta dell’aggiunta di 2 nuovi metodi per fermare/far ripartire lo scheduler, rispettivamente haltScheduler() e restartScheduler(). Questi metodi sono utili ad esempio se vogliamo fermare tutti i task in esecuzione nello stesso momento. Ho aggiunto anche la …
dic 23 2012
leOS 1.0.3 e leOS 2.1.1
Ho aggiornato sia il leOS che il leOS2 con la possibilità di aggiungere un task che deve essere avviato non appena questo viene aggiunto allo scheduler. Ciò è possibile specificando la parola chiave SCHEDULED_IMMEDIATESTART per lo stato del task. Esempio: myOS.addTask(miaFunzione, intervallo, SCHEDULED_IMMEDIATESTART); Precedentemente, il task veniva eseguito la prima volta solo dopo che era …
dic 10 2012
leOS2 2.1.0
Prima versione stabile di leOS2. Ho corretto un bug nella gestione del timeout per l’autoreset del microcontrollore nel caso sia invocato un task che blocca la CPU: adesso funziona perfettamente, rispettando il valore passato in fase di inizializzazione prima di resettare il chip. Scarica leOS2…
nov 27 2012
Aggiornata la libreria secTimer alla versione 0.4
Ho aggiornato la libreria secTimer alla versione 0.4 per correggere un bug che bloccava tutti gli interrupt del microcontrollore (quindi disabilitando tutti gli eventi basati su di essi quali la gestione della seriale) una volta usato il metodo stopTimer. La versione 0.4 introduce anche il supporto a nuove MCU come l’Atmega32U4 (Arduino Leonardo), l’Attiny4313 e …
