Esame di UC: appello del 24/01/2021
Tempo impiegato: tempo del corso.
Modalità dell'esame: in seguito alla situazione che ormai noi tutti conosciamo, l'esame avviene tramite la piattaforma Teams, quindi la prova non si svolge al calcolatore, ma tramite scrittura su un foglio dell'elaborato. Data la modalità, la prof, molto disponibile sia al corso, che al colloquio, non esige che conosciate a memoria i nomi e i bit da modificare come nell'ambiente IAR (ndr. IAR è il tool usato al corso per sviluppare il software che girerà sullo schedino). Il codice da proporre sarà quindi una sorta di C-like, dove per i registri e i bit potete usare dei nomi a voi più congeniali, l'importante è dimostrare di aver capito come funziona il particolare blocco che andrete ad usare (generalmente un ADC o un DAC o una combinazione dei due).
Traccia: Realizzare uno script che ad ogni pressione del tasto USER aumenta la tensione di 0.1v nel DAC, il quale risulta già caricato con una tensione di 0.1v. Inoltre, quando la tensione nel DAC raggiunge il massimo valore, caricare il DAC a 0.1v.
Svolgimento:
Note: L'esame è molto interessante e la prof. è molto prodiga di consigli ed attenta ad ogni dubbio dei suoi studenti. Un corso sicuramente da seguire.
Tempo impiegato: tempo del corso.
Modalità dell'esame: in seguito alla situazione che ormai noi tutti conosciamo, l'esame avviene tramite la piattaforma Teams, quindi la prova non si svolge al calcolatore, ma tramite scrittura su un foglio dell'elaborato. Data la modalità, la prof, molto disponibile sia al corso, che al colloquio, non esige che conosciate a memoria i nomi e i bit da modificare come nell'ambiente IAR (ndr. IAR è il tool usato al corso per sviluppare il software che girerà sullo schedino). Il codice da proporre sarà quindi una sorta di C-like, dove per i registri e i bit potete usare dei nomi a voi più congeniali, l'importante è dimostrare di aver capito come funziona il particolare blocco che andrete ad usare (generalmente un ADC o un DAC o una combinazione dei due).
Traccia: Realizzare uno script che ad ogni pressione del tasto USER aumenta la tensione di 0.1v nel DAC, il quale risulta già caricato con una tensione di 0.1v. Inoltre, quando la tensione nel DAC raggiunge il massimo valore, caricare il DAC a 0.1v.
Svolgimento:
C:
// DAC script
// Per questo script si è utilizzato il registro a 12-bit del DAC allineato a destra.
#include "stm32f30x.h"
#define Q 4096.0/3.0 //fattore di conversione per la tensione
void main()
{
short int vcode=0.1*Q; //codice per l'incremento
short int voltage=vcode; //codice per la tensione
//Setting per la linea GPIOA
RCC->AHBENR |=RCC_AHBENR_GPIOAEN; //abilito GPIOA
GPIOA->MODER |=GPIO_MODER_MODER0; //input per il tasto USER
//Setting per DAC
RCC->APB1ENR |=RCC_APB1ENR_DACEN; //RCC PER DAC
DAC->CR |= DAC_CR_EN1; //abilitazione canale - 1 -
for(int t=0;t<1000;t++); //attesa 10us - tempo di Wake up
DAC->DHR12R1=voltage; //impostazione tensione DAC
while(1)
{
if voltage<4096
{
if (GPIOA->IDR & GPIO_IDR_IDR0) //verifica se il tasto USER è premuto
{
voltage+=vcode; //incrementa la tensione del DAC
DAC->DHR12R1=voltage; //e la scrive nel registro a 12 bit
}
else
voltage=vcode; //riporta a 0.1v la tensione nel DAC
}
}
}
Note: L'esame è molto interessante e la prof. è molto prodiga di consigli ed attenta ad ogni dubbio dei suoi studenti. Un corso sicuramente da seguire.
Ultima modifica: