This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:examples:digi:sound [2015/02/27 12:06] – raivo.sell | et:examples:digi:sound [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ~~PB~~ | + | < |
| ====== Heligeneraator ====== | ====== Heligeneraator ====== | ||
| //Vajalikud teadmised: | //Vajalikud teadmised: | ||
| Line 21: | Line 21: | ||
| Kõlarite juhtimiseks ei piisa tavaliselt digitaalväljundist vaid vaja on analoogsignaali. Selleks on kõige mugavam rakendada digitaal-analoog muundurit (inglise keeles // | Kõlarite juhtimiseks ei piisa tavaliselt digitaalväljundist vaid vaja on analoogsignaali. Selleks on kõige mugavam rakendada digitaal-analoog muundurit (inglise keeles // | ||
| - | ~~PB~~ | + | < |
| ===== Praktika ===== | ===== Praktika ===== | ||
| Line 28: | Line 28: | ||
| <code c> | <code c> | ||
| - | // Valitud sageduse ja pikkusega helisignaali genereerimine. | + | // Valitud sageduse ja pikkusega helisignaali genereerimine |
| void buzzer_sound (unsigned char freq, unsigned int length) | void buzzer_sound (unsigned char freq, unsigned int length) | ||
| { | { | ||
| Line 67: | Line 67: | ||
| if( CH1_Output == 1) | if( CH1_Output == 1) | ||
| { | { | ||
| - | // Sea väljundpinge | + | // Väljundpinge määramine |
| DAC_Channel_Write( &DACB, volume, CH1); | DAC_Channel_Write( &DACB, volume, CH1); | ||
| CH1_Output = 0; | CH1_Output = 0; | ||
| } | } | ||
| + | |||
| else | else | ||
| { | { | ||
| - | // Sea väljundpinge 0V | + | // Väljundpinge määramine 0 V |
| DAC_Channel_Write( &DACB, 0, CH1); | DAC_Channel_Write( &DACB, 0, CH1); | ||
| CH1_Output = 1; | CH1_Output = 1; | ||
| Line 80: | Line 81: | ||
| // Genereeritakse heli sagedusega freq (8 Hz - 500 kHz) ja pikkusega length (ms) | // Genereeritakse heli sagedusega freq (8 Hz - 500 kHz) ja pikkusega length (ms) | ||
| - | // kui length = 0, siis jäädaksega | + | // kui length = 0, siis jäädaksegi |
| void buzzer_sound (uint16_t freq, unsigned int length) | void buzzer_sound (uint16_t freq, unsigned int length) | ||
| { | { | ||
| // DAC seadistamine | // DAC seadistamine | ||
| - | // AVCC Pingereferentsiks | + | // AVCC on pingereferentsiks |
| DACB.CTRLC = ( DACB.CTRLC & ~DAC_REFSEL_gm) | DAC_REFSEL_AVCC_gc; | DACB.CTRLC = ( DACB.CTRLC & ~DAC_REFSEL_gm) | DAC_REFSEL_AVCC_gc; | ||
| // Kanali valimine | // Kanali valimine | ||