void SW_timer_handler() { char buffer[20]; uint8_t timnum; for(timnum=0;timnum<SWTIMERNUM;timnum++) { if(BitTst(SWtimerFlags,BitMsk(timnum))) { switch (timnum) { case 0 : LED_action(LED1,TOGGLE); break; case 1 : therm_read_temperature(buffer); debug_send(buffer); break; case 2 : LED_action(LED2,TOGGLE); break; case 3 : LED_action(LED3,TOGGLE); break; } BitClr(SWtimerFlags,BitMsk(timnum)); } } go_to_sleep(); }
int main(void) { // init max7219 spi communication matrix_init(); // define variable that will hold temperature digit and decimal part int8_t digit = 0; uint16_t decimal = 0; while(1) { therm_read_temperature(&digit, &decimal); // calculate digits char digit3 = digit/100; char kalan = digit%100; char digit2 = kalan/10; char digit1 = kalan%10; // calculate digits of the decimal part char decimal4 = decimal/1000; kalan = decimal%1000; char decimal3 = kalan/100; kalan = decimal%100; char decimal2 = kalan/10; char decimal1 = kalan%10; // print values to 7 segment display matrix_transmit(1, digit_map[digit2]); matrix_transmit(2, (digit_map[digit1]) | 0b10000000); // Light up the "dot" in the digit //matrix_transmit(4, digit_map[decimal4]); //matrix_transmit(5, digit_map[decimal3]); //matrix_transmit(6, digit_map[decimal2]); //matrix_transmit(7, digit_map[decimal1]); //_delay_ms(1000); } return 0; }