Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About Jodes

  • Rank
  1. Lol yes you were right, that was the problem, thank you! I thought I'd be able to edit my post so didn't check it thoroughly, I'd reduced the pointless statement I had from: if (1 == ((UART_TX_BUFF_LENGTH + uartPushPos) - uartPopPos) % UART_TX_BUFF_LENGTH){ Which seemed to be giving an error as well, but now it works fine with the semicolon removed so I'm happy! Spent all day pulling hair and scratching head! Thanks Everyone!
  2. The largest single allocation cannot be larger than the contiguous space in a single bank. I don't know what the maximum you can get from a 16F1826 is, or if there is some overhead.
  3. Just an observation, (Sorry, I don't know any guides), but beyond writing good C code, it's obvious to me that improvements could only come from understanding the instruction set of the microprocessor, then establishing how to make the compiler produce the expected code. In short, you'll need to be programming C with your assembler hat on. Leverage this community's expertise; ask for guidance on specific algorithms.
  4. Hi, I don't know what I'm doing wrong, I thought I had the hang of #define, wrote a whole load of code, got the errors stated, and reduced the code until I removed the errors. Below is the removed code that eliminated the errors: #define UART_TX_BUFF_LENGTH 16; // Creates the error volatile char circularFifoUartOutputBuffer [UART_TX_BUFF_LENGTH]; // Creates identical error: if (UART_TX_BUFF_LENGTH == 1){ What's going on here? Thanks
  • Create New...