// tdm.c // // time division multiplexing /* Copyright (C) 2017 H.Poetzl ** ** This program is free software: you can redistribute it and/or ** modify it under the terms of the GNU General Public License ** as published by the Free Software Foundation, either version ** 2 of the License, or (at your option) any later version. */ // ------------------------------------------------ // configuration #define NO_BIT_DEFINES #include #include #define CONFIG(k, n) __code static char __at _ ## k __ ## k = n CONFIG(CONFIG1, _FEXTOSC_OFF & _RSTOSC_HFINT1 & _CSWEN_ON & _CLKOUTEN_OFF); CONFIG(CONFIG2, _MCLRE_ON & _WDTE_OFF & _PPS1WAY_OFF); #include "tear_leds.h" // -------------------------------------------------- // and our main entry point void main() { // all digital ANSELA = 0; ANSELB = 0; ANSELC = 0; // all input TRISA = 0xFF; TRISB = 0xFF; TRISC = 0xFF; // all one LATA = 0xFF; LATB = 0xFF; LATC = 0xFF; // all open drain ODCONA = 0xFF; ODCONB = 0xFF; ODCONC = 0xFF; __asm BANKSEL TRISA BCF LED0T,LED0 BCF LED1T,LED1 BCF LED2T,LED2 BCF LED3T,LED3 BCF LED4T,LED4 BCF LED5T,LED5 BCF LED6T,LED6 BCF LED7T,LED7 BCF LED8T,LED8 BCF LED9T,LED9 BCF LEDAT,LEDA BCF LEDBT,LEDB BCF LEDCT,LEDC BCF LEDDT,LEDD BCF LEDET,LEDE BCF LEDFT,LEDF __endasm; OSCCON3bits.CSWHOLD = 0; OSCCON1bits.NDIV = 1; PMD0 = 0xC3; /* All */ PMD1 = 0xFF; /* All */ PMD2 = 0x66; /* All */ PMD3 = 0xFF; /* All */ PMD4 = 0x22; /* All */ PMD5 = 0x1F; /* All */ while (1) { __asm BANKSEL LATA BCF LED0L,LED0 BSF LED0L,LED0 BCF LED1L,LED1 NOP BSF LED1L,LED1 BCF LED2L,LED2 NOP NOP BSF LED2L,LED2 BCF LED3L,LED3 NOP NOP NOP BSF LED3L,LED3 BCF LED4L,LED4 NOP NOP NOP NOP BSF LED4L,LED4 BCF LED5L,LED5 NOP NOP NOP NOP NOP BSF LED5L,LED5 BCF LED6L,LED6 NOP NOP NOP NOP NOP NOP BSF LED6L,LED6 BCF LED7L,LED7 NOP NOP NOP NOP NOP NOP NOP BSF LED7L,LED7 BCF LED8L,LED8 NOP NOP NOP NOP NOP NOP NOP NOP BSF LED8L,LED8 BCF LED9L,LED9 NOP NOP NOP NOP NOP NOP NOP NOP NOP BSF LED9L,LED9 BCF LEDAL,LEDA NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP BSF LEDAL,LEDA BCF LEDBL,LEDB NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP BSF LEDBL,LEDB BCF LEDCL,LEDC NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP BSF LEDCL,LEDC __endasm; } }