cube-kl/firmware/main.c

53 lines
1.0 KiB
C
Raw Normal View History

2018-06-13 01:56:57 +02:00
#include <avr/io.h>
#include <util/delay.h>
2018-07-15 14:54:33 +02:00
#include "timer.h"
#include "uart.h"
2018-06-13 01:56:57 +02:00
#include "twi.h"
#include "si5351.h"
2018-07-08 02:06:25 +02:00
#include "wspr.h"
2018-06-13 01:56:57 +02:00
int main(void) {
2018-07-15 14:54:33 +02:00
uart_init();
2018-06-13 01:56:57 +02:00
twi_init();
2018-07-15 14:54:33 +02:00
timer_init();
2018-07-07 01:51:20 +02:00
2018-07-15 14:54:33 +02:00
sei();
2018-06-20 01:22:31 +02:00
2018-07-15 14:54:33 +02:00
si5351_init(25000000, 800000000, 500000000);
si5351_ms_set_source(SI5351_MS0, SI5351_PLLA);
2018-07-08 02:06:25 +02:00
//si5351_ms_set_freq(SI5351_MS0, 7040100);
//si5351_ms_enable_output(SI5351_MS0);
//si5351_ms_write_params(SI5351_MS0, WSPR_SYMBOLS[3]);
2018-07-15 00:20:41 +02:00
uint8_t wspr_buffer[WSPR_LENGTH];
wspr_encode("DL1SSK", "JN39", 27, wspr_buffer);
2018-07-15 14:54:33 +02:00
char line[16];
while(1) {
uint8_t res = 0;
while(res != 1) {
uart_puts("?\n");
res = uart_get_line(line, 16);
}
uint32_t realtime = strtoul(line,NULL,10);
timer_set(realtime);
uart_puts("Time set\n");
while(timestamp % 120 != 1) {
_delay_ms(25);
}
wspr_transmit(SI5351_MS0, wspr_buffer);
uart_puts("Transmission send\n");
}
2018-06-13 01:56:57 +02:00
2018-07-07 01:51:20 +02:00
2018-06-13 01:56:57 +02:00
while(1);
}