diff options
| author | Sadeep Madurange <sadeep@asciimx.com> | 2025-05-03 07:21:28 +0800 |
|---|---|---|
| committer | Sadeep Madurange <sadeep@asciimx.com> | 2025-05-03 07:21:28 +0800 |
| commit | 0ff109f1fd0bcd39b1ce4e950dba3f1c7523a861 (patch) | |
| tree | c14ebfb7f4eda6648c9e54c9cc36f616cded0756 /main.c | |
| download | avr-fpm-drivers-0ff109f1fd0bcd39b1ce4e950dba3f1c7523a861.tar.gz | |
Initial commit.
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 99 |
1 files changed, 99 insertions, 0 deletions
@@ -0,0 +1,99 @@ +/* + * example_usage.c + * + */ + +#define bit_clr(a,b) ((a) &=~(1<<(b))) +#define bit_set(a,b) ((a) |= (1<<(b))) +#define bit_tst(a,b) ((a) & (1<<(b))) +#define bit_change(a,b) ((a) ^= (1<<(b))) + +#include <stdio.h> + +#include <avr/io.h> +#include <avr/interrupt.h> +#include <util/delay.h> + +#define Soft_UART_TX_PORT PORTD +#define Soft_UART_TX_DDR DDRD +#define Soft_UART_TX_PIN 3 +#define Soft_UART_Baud 9600 +#include "Soft_UART_Timer1.h" + +#include "fpm.h" + +static inline void uart_write(const char *s) +{ + for (; *s; s++) { + Soft_UART_send_byte(*s); + } + Soft_UART_send_byte('\r'); + Soft_UART_send_byte('\n'); +} + +int main(void) +{ + const int SLEN = 25; + + char s[SLEN]; + struct fpm_config cfg; + + cli(); + Soft_UART_init(); + bit_set(DDRB,5); + sei(); + + if (fpm_init()) + uart_write("FPM detected"); + else + uart_write("FPM not detected"); + + if (fpm_get_config(&cfg)) { + uart_write("FPM config:"); + snprintf(s, SLEN, "\tstatus: 0x%02X", cfg.status); + uart_write(s); + snprintf(s, SLEN, "\tsysid: 0x%02X", cfg.sysid); + uart_write(s); + snprintf(s, SLEN, "\tcap: %d", cfg.cap); + uart_write(s); + snprintf(s, SLEN, "\tsec: %d", cfg.sec_level); + uart_write(s); + snprintf(s, SLEN, "\taddr: 0x%02X%02X%02X%02X", cfg.addr[0], + cfg.addr[1], cfg.addr[2], cfg.addr[3]); + uart_write(s); + snprintf(s, SLEN, "\tpkt size: %d", cfg.pkt_size); + uart_write(s); + + if (cfg.baud == 1) + uart_write("\tbaud: 9600"); + else if (cfg.baud == 2) + uart_write("\tbaud: 19200"); + else if (cfg.baud == 3) + uart_write("\tbaud: 28800"); + else if (cfg.baud == 4) + uart_write("\tbaud: 38400"); + else if (cfg.baud == 5) + uart_write("\tbaud: 48000"); + else if (cfg.baud == 6) + uart_write("\tbaud: 57600"); + else if (cfg.baud == 7) + uart_write("\tbaud: 67200"); + else if (cfg.baud == 8) + uart_write("\tbaud: 76800"); + else if (cfg.baud == 9) + uart_write("\tbaud: 86400"); + else if (cfg.baud == 10) + uart_write("\tbaud: 96000"); + else if (cfg.baud == 11) + uart_write("\tbaud: 105600"); + else if (cfg.baud == 12) + uart_write("\tbaud: 115200"); + } + + while (1) + { + _delay_ms(1000); + } + + return 0; +} |
