From d393e0c30192611d4cac65a5429fd7180ce1f49c Mon Sep 17 00:00:00 2001 From: "info@mode42.com" Date: Fri, 7 Aug 2026 18:15:00 +0000 Subject: Initial push --- firmware/c1224/include/afsk_bitbang.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 firmware/c1224/include/afsk_bitbang.h (limited to 'firmware/c1224/include/afsk_bitbang.h') diff --git a/firmware/c1224/include/afsk_bitbang.h b/firmware/c1224/include/afsk_bitbang.h new file mode 100644 index 0000000..886b912 --- /dev/null +++ b/firmware/c1224/include/afsk_bitbang.h @@ -0,0 +1,30 @@ +/** + * Bitbang / timed NRZI on TCM3105 TXD (GP6) and RXD (GP7). + * Rate matches stuffed crystal — compile C1224_BITRATE=1200|2400. + * SPDX-License-Identifier: GPL-3.0-or-later + */ +#ifndef C1224_AFSK_BITBANG_H +#define C1224_AFSK_BITBANG_H + +#include +#include +#include + +#ifndef C1224_BITRATE +#define C1224_BITRATE 1200 +#endif + +void afsk_bitbang_init(void); + +/** Transmit HDLC info payload (AX.25 frame without flags/FCS). Auto-PTT. */ +bool afsk_tx_frame(const uint8_t *info, size_t info_len); + +/** Poll RX sampler; call often from main loop. May emit via callback. */ +typedef void (*afsk_rx_frame_fn)(const uint8_t *info, size_t len); +void afsk_rx_set_callback(afsk_rx_frame_fn fn); +void afsk_rx_poll(void); + +bool afsk_tx_busy(void); +unsigned afsk_bitrate(void); + +#endif /* C1224_AFSK_BITBANG_H */ -- cgit v1.3.1