add unified compile target
[avr_work.git] / lline / main.c
blob94006ad93117b2281b05d6da3cd534444ee48d3b
1 /*
2 * ATtiny861
3 general initialization and main loop
4 */
6 #include "defines.h"
7 #include "common.h"
8 #include "debug.h"
10 #include <stdio.h>
11 #include <stdlib.h>
12 #include <stdbool.h>
13 #include <string.h>
15 #include <avr/io.h>
16 #include <avr/power.h>
17 #include <avr/interrupt.h>
18 #include <util/delay.h>
20 //#include <avr/pgmspace.h>
22 #include "spi_io.h"
23 #include "text_cmd.h"
25 #include "adc.h"
26 #include "motor.h"
28 static inline void init(void);
29 void main(void) __attribute__((noreturn));
31 static inline void init() {
32 power_all_disable();
34 debug_led_init();
36 clock_prescale_set(clock_div_1);
38 spi_io_init();
40 adc_init();
42 motor_init();
44 sei();
48 ISR(BADISR_vect){
53 void main(){
54 init();
56 uint16_t adc_val[ADC_CHANNEL_CT];
58 for(;;) {
59 if (adc_new_data) {
60 adc_new_data = false;
61 memcpy(adc_val, (uint16_t *) adc_values,sizeof(adc_val));
62 for (uint8_t i = 0; i < ADC_CHANNEL_CT; i++) {
63 spi_putchar((char) (i+'0'));
64 spi_putchar(':');
65 spi_putchar(' ');
66 spi_puth2(adc_val[i]);
67 spi_putchar('\t');
69 spi_putchar('\n');
71 process_rx();
72 _delay_ms(200);