Strumenti Utente

Strumenti Sito


simon

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisioneEntrambe le parti successive la revisione
simon [2020/02/14 16:15] – [Software] adminsimon [2020/02/14 16:27] – [Software] admin
Linea 559: Linea 559:
   // cambia la modalità di funzionamento del timer che passa da normal    // cambia la modalità di funzionamento del timer che passa da normal 
   // a PWM phase correct (WGM0[2:0]=001) dove conta in su e in giù fino   // a PWM phase correct (WGM0[2:0]=001) dove conta in su e in giù fino
-  // a 0xFF (poi il valore massimo diventerà quello del reistro OCR0A  +  // a 0xFF (nella funzione play() conterà fino al valore contenuto nel 
-  // nella funzione play() per cambiare la frequenza della nota)+  // registro OCR0A per modificare la frequenza e produrre più note))
   // Si imposta il compare output mode del waveform generator in modo    // Si imposta il compare output mode del waveform generator in modo 
   // che il pin del buzzer PB1/OC0B (COM0B[1:0]=10) vada basso sul   // che il pin del buzzer PB1/OC0B (COM0B[1:0]=10) vada basso sul
   // match col valore del registro OCR0B mentre conta in su e alto    // match col valore del registro OCR0B mentre conta in su e alto 
   // mentre conta in giù (OCR0B è impostato nella funzione play() come   // mentre conta in giù (OCR0B è impostato nella funzione play() come
-  // OCR0A) +  // OCR0A) generando un onda quadra con la frequenza desiderata 
-  // NB il segnale PWM è presente solo se il pin è impostato come usicta+  // NB il segnale PWM è presente solo se il pin è impostato come uscita
   // (pag 68) quindi il buzzer non suona finche non si chiama play()   // (pag 68) quindi il buzzer non suona finche non si chiama play()
   TCCR0A = (1 << COM0B1) | (0 << COM0B0) | (0 << WGM01)  | (1 << WGM00);    TCCR0A = (1 << COM0B1) | (0 << COM0B0) | (0 << WGM01)  | (1 << WGM00); 
Linea 572: Linea 572:
   // LETTURA O RESET DELL'HIGH SCORE DA EEPROM PREMENDO START+ROSSO   // LETTURA O RESET DELL'HIGH SCORE DA EEPROM PREMENDO START+ROSSO
    
-  // maxLvl viene scritto/letto negato (operatore ~) perché il valore +  // maxLvl viene scritto letto negato (con l'operatore ~) perché il  
-  // contenuto inizialmente nella EEPROM è sempre 0xFF (255 e non zero)+  // valore di default della EEPROM è sempre 0xFF (255 e non zero)
   // (uint8_t*) 0 è un puntatore a un byte che parte dall'indirizzo 0   // (uint8_t*) 0 è un puntatore a un byte che parte dall'indirizzo 0
   maxLvl = ~eeprom_read_byte((uint8_t*) 0);    maxLvl = ~eeprom_read_byte((uint8_t*) 0); 
Linea 584: Linea 584:
     // non premuti sono al livello alto (pull-up) quindi controlliamo      // non premuti sono al livello alto (pull-up) quindi controlliamo 
     // se PB3 (LED rosso) è premuto e nel caso resettiamo l'high score     // se PB3 (LED rosso) è premuto e nel caso resettiamo l'high score
-    case 0b00010101: // PB3 premuto dopo il reset+    case 0b00010101: // PB3 premuto dopo il reset -> azzera high-score
       eeprom_write_byte((uint8_t*) 0, 255); // scrive 255 -> livello 0       eeprom_write_byte((uint8_t*) 0, 255); // scrive 255 -> livello 0
       maxLvl = 0;       maxLvl = 0;
simon.txt · Ultima modifica: 2023/10/27 18:02 da admin