Lilia 0 21 января, 2021 Опубликовано 21 января, 2021 (изменено) · Жалоба Пытаюсь настроить систему событий Attiny1607, чтобы по срабатыванию таймера запускалось чтение АЦП. EVSYS.SYNCCH0 = 0x02; //TCA0_OVF_LUNF EVSYS.SYNCUSER0 = 0x01; //ADC0 Инициализация ADC: // Частота ADC: 208,333 kHz =20 000KHz/6 /16 // Опорное напряжение ADC: AVCC pin ADC0.CTRLA = 0x00; //Full 10-bit resolution. The 10-bit ADC results are accumulated or stored ADC.RES ADC0.CTRLB = 0x00; ADC0.CTRLC = 0x13;//CLK_PER divided by 16, Опорное напряжение ADC: AVCC pin ADC0.MUXPOS = 0x08; //начальный режим чтения с ножки (PB5-AIN8) ADC0.INTCTRL = ADC_RESRDY_bm;//Result Ready Interrupt Enable ADC0.EVCTRL = 1; //разрешить запуск по событию ADC0.CTRLA = ADC_ENABLE_bm;//включить АЦП ADC0.COMMAND = 0x01;//Start Conversion while ( (ADC0.INTFLAGS & 1)==0 );// подождём конца первого преобразования (флага прерывания ацп) asm("sei"::); // Разрешить глобальное прерывание ADC0.INTFLAGS |=1; Таймер работает, а ISR (ADC0_RESRDY_vect) не срабатывает. Помогите пожалуйста настроить регулярную работу АЦП. Изменено 21 января, 2021 пользователем Lilia Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NStorm 0 28 января, 2021 Опубликовано 28 января, 2021 · Жалоба Просто оставлю здесь ответ с другого форума, на случай если кто поиском в эту тему придет: EVSYS.ASYNCUSER1 = EVSYS_ASYNCUSER1_SYNCCH0_gc; /* Synchronous Event Channel 0 */ EVSYS.SYNCCH0 = EVSYS_SYNCCH0_TCA0_OVF_LUNF_gc; /* Timer/Counter A0 overflow */ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться