#include "USART_dump.h" /* Allows for simple debugging of modules. Header only makes DUMP() visible. */ typedef struct USART { volatile unsigned short sr; volatile unsigned short Unused0; volatile unsigned short dr; volatile unsigned short Unused1; volatile unsigned short brr; volatile unsigned short Unused2; volatile unsigned short cr1; volatile unsigned short Unused3; volatile unsigned short cr2; volatile unsigned short Unused4; volatile unsigned short cr3; volatile unsigned short Unused5; volatile unsigned short gtpr; } USART; #define USARTtest ((USART *) 0x40011000) void _outchar( char c ) { /* write character to usart1 */ while (( USARTtest->sr & 0x80)==0); USARTtest->dr = (unsigned short) c; if( c == '\n') _outchar('\r'); } char _tstchar(void) { /* see if character arrived at usart1, if not, return 0 else return character */ if( (USARTtest->sr & 0x20)==0) return 0; return (char) USARTtest->dr; } char _getchar(void) { /* wait until character arrived at usart1, return character */ while( (USARTtest->sr & 0x20)==0) ; return (char) USARTtest->dr; } void usart_send(char* s){ while (*s != '\0') _outchar(*(s++)); } void DUMP(char *s) { usart_send(s); _outchar('\n'); }