diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2025-10-23 19:44:16 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2025-10-23 19:44:16 -0400 |
| commit | 94cdc9ec4e75fc5e55deb394eda4820ba672e3e4 (patch) | |
| tree | cf0762794d78324cd508cf5e80b5a13351965d63 /fw/can.c | |
| parent | 04fbfdb4fd6bf4118b88867d852e3b29d139c800 (diff) | |
| download | can-gauge-interface-94cdc9ec4e75fc5e55deb394eda4820ba672e3e4.zip | |
enable CLKOUT
Diffstat (limited to 'fw/can.c')
| -rw-r--r-- | fw/can.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -12,6 +12,8 @@ // Oscillator startup timeout #define STARTUP_TIME 128u +#define TX_RETRIES 10u + // Register addresses typedef enum { // Config and status @@ -288,6 +290,7 @@ canTx(const CanFrame *frame) { // Send bitModify(REG_TXB0CTRL, TXREQ, TXREQ); + k = 0u; do { ctrl = read(REG_TXB0CTRL); if (ctrl & TXERR) { @@ -295,9 +298,9 @@ canTx(const CanFrame *frame) { bitModify(REG_TXB0CTRL, TXREQ, 0); // cancel transmission return FAIL; } - } while (ctrl & TXREQ); // transmission in progress + } while ((ctrl & TXREQ) && (++k <= TX_RETRIES)); // transmission in progress - return OK; + return (k <= TX_RETRIES) ? OK : FAIL; } void |