3.1 Настраиваем все выводы на работу в качестве портов (регистр GPxMUX) (см. лаб.раб. №2).
3.2. Настраиваем порты A, D, E, F, G на ввод (регистр GPxDIR).
3.3 Настраиваем линии порта GPIOB15 – GPIOB8 на ввод, а GPIOB7 – GPIOB0 на вывод.
3.4 Сбрасываем биты регистров GPxQUAL в ноль.
4. Инициализация модуля Менеджера Событий.
4.1 Запрещаем выходы сравнения и выбираем полярность выходов сравнения принудительный низкий уровень (регистр GPTCONA) (см. лаб.раб. №3).
4.2 В регистре T1CON выбираем: непрерывный режим счета вверх, синхронизация от внутреннего источника, запрещаем режим сравнения, разрешаем работу GP таймера 1, задаем коэффициент деления 128.
4.3 Разрешаем запуск АЦП от Менеджера Событий А (регистр GPTCONA).
4.4 Рассчитываем значение периода (T1PR), зная, что = 10 Гц:
Инициализация модуля АЦП.
5.1 Задаем: двух последовательный режим, запрещаем непрерывный режим, коэффициент деления 1 (регистр ADCTRL1).
5.2 Записываем количество преобразований 2 (регистр ADCMAXCONV).
5.3 Выбираем каналы ADCIN_A0 и ADCIN_B0 (регистр ADCCHSELSEQ1).
|
|
5.4 Разрешаем преобразования от Менеджера Событий А, разрешаем прерывания АЦП в конце каждой последовательности (регистр ADCTRL2)
5.3 Задаем делитель частоты высокоскоростного таймера равный 4.
Настройка прерываний.
6.1 Указываем адрес вектора прерываний (регистр ADCINT).
6.2 Разрешаем прерывание 6 группы 1 (регистр PIEIER1).
6.3 Вызываем подпрограммы инициализации: модуля прерывания периферийных устройств “InitPieCtrl()”, вектора прерывания периферийных устройств “InitPieVectTable()”, модуля АЦП “InitAdc()”.
Получение результатов преобразования АЦП (подпрограмма “adc_isr()”).
7.1 Считываем результаты преобразования из регистров ADCRESULT0 и ADCRESULT1 и сохраняем их соответственно в переменные Voltage_A0 и Voltage_B0. Так как данные в регистрах ADCRESULTn выровнены к левому краю, необходимо произвести сдвиг данных на четыре разряда вправо.
7.2 Подготавливаем АЦП к следующему преобразованию: сбрасываем последовательность SEQ1 (регистр ADCTRL2), сбрасываем бит прерывания SEQ1 (регистр ADCST), подтверждаем прерывания (регистр PIEACK).