rpi4-osdev/part7-bluetooth/kernel.c

72 lines
1.3 KiB
C
Raw Normal View History

2020-07-23 19:37:48 +00:00
#include "io.h"
#include "bt.h"
#include "fb.h"
int curx = 0;
int cury = 0;
int strlen(const char *str) {
const char *s;
for (s = str; *s; ++s);
return (s - str);
}
void debugstr(char *str) {
if (curx + (strlen(str) * 8) >= 1920) {
curx = 0; cury += 8;
}
drawString(curx, cury, str, 0x0f, 1);
curx += (strlen(str) * 8);
}
void debugcrlf(void) {
curx = 0; cury += 8;
}
void debugch(unsigned char b) {
unsigned int n;
int c;
for(c=4;c>=0;c-=4) {
n=(b>>c)&0xF;
n+=n>9?0x37:0x30;
debugstr((char *)&n);
}
debugstr(" ");
}
2020-08-10 19:20:13 +00:00
2020-07-23 19:37:48 +00:00
void main()
{
fb_init();
2020-07-23 19:37:48 +00:00
uart_init();
bt_init();
debugstr("Initialising Bluetooth: ");
debugstr(">> reset: ");
bt_reset();
debugstr(">> firmware load: ");
bt_loadfirmware();
debugstr(">> set baud: ");
bt_setbaud();
debugstr(">> set bdaddr: ");
bt_setbdaddr();
2020-08-10 19:20:13 +00:00
// Print the BD_ADDR
unsigned char local_addr[6];
bt_getbdaddr(local_addr);
for (int c=5;c>=0;c--) debugch(local_addr[c]);
debugcrlf();
// Start advertising
debugstr("Setting event mask... ");
2020-08-06 09:53:58 +00:00
setLEeventmask(0xff);
debugstr("Starting advertsing... ");
startActiveAdvertising();
2020-08-10 19:20:13 +00:00
// Enter an infinite loop
debugstr("Going loopy...");
while (1) {
uart_update();
}
2020-07-23 19:37:48 +00:00
}