qload: enabled autoquit
[trut64.git] / avr / main.c
blob452a079974081bd817d3d3bb11bea8ce1a320819
1 /*
2 * Copyright (C) 2007 Anton Blad
3 * Copyright (C) 2007 Fredrik Kuivinen
4 * Copyright (C) 2007 Jakob Rosén
6 * This file is licensed under GPL v2.
7 */
9 #include "fcpu.h"
11 #include <avr/io.h>
12 #include <util/delay.h>
13 #include <avr/wdt.h>
14 #include <avr/interrupt.h>
15 #include <avr/power.h>
17 #include "avrusb.h"
18 #include "buffer.h"
19 #include "debugleds.h"
20 #include "trutcomm.h"
21 #include "usbdescriptors.h"
22 #include "dbuf.h"
23 #include "loadtask.h"
24 #include "passtask.h"
25 #include "dumptask.h"
26 #include "timer1.h"
27 #include "stackusage.h"
28 #include "c64tape.h"
29 #include "motor.h"
30 #include "trutcontrol.h"
31 #if HWBOARD==DEVTRUT
32 #include "avrlibc162.h"
33 #endif
34 #include "trutprofile.h"
36 int main(void)
38 wdt_disable();
39 debugled_init();
41 debugled(3, 1);
42 _delay_ms(10);
43 debugled(3, 0);
45 #if HWBOARD==DEVTRUT
46 // Change to external clock.
47 //CKSEL0 |= (1 << EXTE);
48 //while(!(CKSTA & (1 << EXTON)));
49 //CKSEL0 |= (1 << CLKS);
50 //CKSEL0 &= ~(1 << RCE);
52 // Enable 3.3V regulator (should be enabled already)
53 REGCR &= (1 << REGDIS);
54 #endif
56 _delay_ms(10);
58 clock_prescale_set(clock_div_1);
60 c64tape_init();
61 buffer_init();
62 usb_init();
63 passtask_init();
64 loadtask_init();
65 dumptask_init();
66 timer1_init();
67 motor_init();
68 #ifdef TRUT_PROFILE
69 profile_init();
70 #endif
72 motor_setlatency(200);
74 sei();
76 trut_setmsgblocks(1);
78 controller(); // does not return
80 for(;;);