Move things about a bit

master
Philip Heron 2010-06-16 22:36:30 +01:00
rodzic 952b9c9ac8
commit a0398932be
2 zmienionych plików z 37 dodań i 35 usunięć

66
rtty.c
Wyświetl plik

@ -51,38 +51,6 @@ ISR(TIMER0_COMPA_vect)
}
}
void rtx_string(char *s)
{
uint16_t length = strlen(s);
rtx_wait();
txpgm = 0;
txbuf = (uint8_t *) s;
txlen = length;
}
void rtx_string_P(PGM_P s)
{
uint16_t length = strlen_P(s);
rtx_wait();
txpgm = 1;
txbuf = (uint8_t *) s;
txlen = length;
}
void rtx_data(uint8_t *data, size_t length)
{
rtx_wait();
txpgm = 0;
txbuf = data;
txlen = length;
}
void rtx_wait()
{
/* Wait for interrupt driven TX to finish */
while(txlen > 0);
}
void rtx_init()
{
/* RTTY is driven by TIMER0 in CTC mode */
@ -97,3 +65,37 @@ void rtx_init()
DDRB |= MARK | SPACE | TXENABLE;
}
void inline rtx_wait()
{
/* Wait for interrupt driven TX to finish */
while(txlen > 0);
}
void rtx_data(uint8_t *data, size_t length)
{
rtx_wait();
txpgm = 0;
txbuf = data;
txlen = length;
}
void rtx_data_P(PGM_P data, size_t length)
{
rtx_wait();
txpgm = 1;
txbuf = (uint8_t *) data;
txlen = length;
}
void rtx_string(char *s)
{
uint16_t length = strlen(s);
rtx_data((uint8_t *) s, length);
}
void rtx_string_P(PGM_P s)
{
uint16_t length = strlen_P(s);
rtx_data_P(s, length);
}

6
rtty.h
Wyświetl plik

@ -13,10 +13,10 @@
#include <stdint.h>
#include <avr/pgmspace.h>
extern void rtx_init();
extern void inline rtx_wait();
extern void rtx_data(uint8_t *data, size_t length);
extern void rtx_string(char *s);
extern void rtx_string_P(PGM_P s);
extern void rtx_data(uint8_t *data, size_t length);
extern void rtx_wait();
extern void rtx_init();
#endif