-
Notifications
You must be signed in to change notification settings - Fork 0
/
blinky2.c
73 lines (63 loc) · 1.04 KB
/
blinky2.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "iodefine.h"
#include "yrdkrx62ndef.h"
#include "lcd.h"
#include "clock.h"
int flag = 0;
int i = 1;
int j = 1;
void led_cycle()
{
if ((i == j) && !flag)
{
i = i << 1;
if (! (i & 0xfff))
i = 1;
flag = 1;
}
j = j << 1;
if (! (j & 0xfff))
j = 1;
if (i != j)
flag = 0;
#define b(led,bit) led = ((j|i) & (1<<bit)) ? 0 : 1
b(LED4,0);
b(LED5,1);
b(LED6,2);
b(LED7,3);
b(LED8,4);
b(LED9,5);
b(LED10,6);
b(LED11,7);
b(LED12,8);
b(LED13,9);
b(LED14,10);
b(LED15,11);
}
void tick_isr(void)
{
led_cycle();
}
int main()
{
LED4_DDR = 1;
LED5_DDR = 1;
LED6_DDR = 1;
LED7_DDR = 1;
LED8_DDR = 1;
LED9_DDR = 1;
LED10_DDR = 1;
LED11_DDR = 1;
LED12_DDR = 1;
LED13_DDR = 1;
LED14_DDR = 1;
LED15_DDR = 1;
lcd_open();
lcd_string(2,0, "Hello");
lcd_string(3,0, "Freedom");
lcd_string(4,0, "lovers!");
tick_start(); // start CMT which will call tick_isr() upon interrupt
while (1)
{
asm("wait");
}
}