simon
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedente | Prossima revisioneEntrambe le parti successive la revisione | ||
simon [2020/02/14 16:15] – [Software] admin | simon [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: | // a PWM phase correct (WGM0[2: | ||
- | // a 0xFF (poi il valore massimo diventerà quello del reistro OCR0A | + | // a 0xFF (nella funzione play() |
- | // nella funzione play() per cambiare | + | // registro OCR0A per modificare |
// 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: | // che il pin del buzzer PB1/OC0B (COM0B[1: | ||
// 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) |
- | // 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) | TCCR0A = (1 << COM0B1) | (0 << COM0B0) | (0 << WGM01) | ||
Linea 572: | Linea 572: | ||
// LETTURA O RESET DELL' | // LETTURA O RESET DELL' | ||
- | // maxLvl viene scritto/letto negato (operatore ~) perché il valore | + | // maxLvl viene scritto |
- | // 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' | // (uint8_t*) 0 è un puntatore a un byte che parte dall' | ||
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