summaryrefslogtreecommitdiff
path: root/can.c
diff options
context:
space:
mode:
Diffstat (limited to 'can.c')
-rw-r--r--can.c82
1 files changed, 6 insertions, 76 deletions
diff --git a/can.c b/can.c
index 1772c30..c764d9b 100644
--- a/can.c
+++ b/can.c
@@ -1,29 +1,3 @@
-#define F_CPU 8000000
-#include <stdint.h>
-#include <stdbool.h>
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include <avr/pgmspace.h>
-#include <util/delay.h>
-
-const uint8_t __signature[3] __attribute__((section (".signature"), used)) =
- { SIGNATURE_2, SIGNATURE_1, SIGNATURE_0 };
-
-#include "uart.c"
-
-#define B_SCK 5
-#define B_MISO 4
-#define B_MOSI 3
-#define B_SS 2
-
-#define D_TXD 1
-#define D_DALII 3
-#define D_DALIO 4
-#define D_LED1 5
-#define D_LED2 6
-
-#include "dali2.c"
-
#define spi_ss(x) PORTB = ((x) << B_SS) | 0x3;
static volatile bool canint = false;
@@ -179,14 +153,8 @@ static void can_int(void)
spi_perform(MCP2515_WRITE, A_CANINTF, 0x00);
}
-int main(void)
+static void can_preinit(void)
{
- uint8_t status;
-
- uart_init();
-
- DDRD |= (1 << D_LED1) | (1 << D_LED2 ) | (1 << D_TXD) | (1 << D_DALIO);
-
spi_ss(1);
DDRB = (1 << B_SCK) | (1 << B_MOSI) | (1 << B_SS);
@@ -197,59 +165,21 @@ int main(void)
EICRA = (1 << ISC01);
EIMSK = (1 << INT0);
- sei();
-
- uart_puts("\nspi: init ok\n");
- _delay_ms(25);
-
- dali_init();
- _delay_ms(25);
+ _delay_ms(5);
+ /* chip reset */
spi_ss(0);
spi_wrrd(0xc0);
spi_ss(1);
- _delay_ms(50);
+ _delay_ms(5);
+
spi_ss(0);
spi_wrrd(0xb0);
- status = spi_wrrd(0xff);
+ uint8_t status = spi_wrrd(0xff);
spi_ss(1);
uart_puts("can: status ");
uart_puthex(status);
uart_puts("\n");
-
- can_init();
- can_CANSTAT();
-
- dali_send(0xff08);
- while (dali_queue_busy())
- ;
- dali_send(0xff08);
-
- for (int i = 0; i < 40; i++)
- _delay_ms(25);
-
- uint8_t ctr = 0;
- while (1) {
- if (canint) {
- canint = false;
- can_int();
- }
- _delay_ms(40);
- ctr++;
- if (ctr == 40)
- dali_send(0xff91);
- if (ctr == 80)
- dali_send(0xff99);
- if (ctr == 120)
- dali_send(0xffa0);
- if (ctr == 160) {
- dali_send(0xff90);
- ctr = 0;
- }
- }
}
-void __do_copy_data(void) __attribute__((naked, section (".init4"), used));
-void __do_copy_data(void) { }
-