Views: 266
- Версия
- Скачать 2
- Размер файла 11.57 KB
- Количество файлов 1
- Дата создания 14/05/2018
- Последнее обновление 01/06/2019
LED драйвер TM1639 библиотека v1.2 for XC16
//------------------------------------------------------------------------------ /* * 8-разрядный дисплей * Библиотека для работы с платами индикации на драйвере TM1639 * 8 разрядный индикатор с общим катодом * 8-digit display * Library for working with display boards on the TM1639 driver * 8-bit common cathode indicator * Microchip MPLAB XC16 C Compiler V1.34 * Геннадий Чернов, Днипро 2018 * Hennady Chernov, Dnipro 2018 * версия V1.2. для работы MCC и XC16 * работа с 4 четырёх кнопочной клавиатурой * TM1639 * __ 9--12/13 * __ 10--12/13 * work with 4 four-button keyboard * Email: catcatcat.electronics@gmail.com * http://catcatcat.d-lan.dp.ua/ * ============================================================================= * -- -- -- -- -- -- -- -- -a- * | | | | | | | | | | | | | | | | f b * -- -- -- -- -- -- -- -- -g- * | | | | | | | | | | | | | | | | e c * --. -- . --. --. --. -- . --. --. -d- h * 1 2 3 4 5 6 7 8 * Десятичная точка 0 - нет точки, цифра после * 1 2 3 4 5 6 7 8 * ============================================================================= * Для работы библиотеки надо в MCC сконфигурировать SPI * пример инициализации и вывода значений на индикатор * TM1639_init (); // инициализация дисплея bin_dec (-3475,0,0,0); // для тестовой индикации * * Функция LOAD_displ_keyboard дожна быть встроена в прерывания таймера с периодом 20 мсек * даннaя библиотека используется совместно с библиотекой SPI * * Индикация и чтение клавиатуры выполняется через функцию <LOAD_displ_keyboard> * в прерывание таймера с периодом 10 милисекунд надо поместить строки * (тут скорость опроса выбираем по желанию) придется только скорректировать * // Задержки анимации * #define NAEZD 14 // длительность наезда * #define DLIT 90 // движение по горизонтали * #define DLITV 90 // вертикальное движение * if(timersud)timersud--; // таймер удержания кнопки LOAD_displ_keyboard (); // загрузка данных и чтение клавы * * пример функциии прерывания для Т3 , период 10 милисекунд * void __attribute__ ( ( interrupt, no_auto_psv ) ) _T3Interrupt ( ) { //***User Area Begin // ticker function call; // ticker is 1 -> Callback function gets called everytime this ISR executes TMR3_CallBack(); //------------------------------------------------------------------------------ if(timersud)timersud--; // таймер удержания кнопки LOAD_displ_keyboard (); // загрузка данных и чтение клавы //------------------------------------------------------------------------------ if(mi05uH)mi05uH--; // таймер 0,5 герца else { mi05uH = 50; B_MIG = !B_MIG; } //------------------------------------------------------------------------------ //***User Area End tmr3_obj.count++; tmr3_obj.timerElapsed = true; IFS0bits.T3IF = false; } * * */