*
*/
-void uart0_init(void) {
+#include "lpc2xxx.h"
- PINSEL0|=((1<<0)|(1<<2)); /* pin select: tx, rx */
+#define OSC_CLOCK 10000000
+#define BAUDRATE 9600
+#define P_DIV 1
+#define P_CLOCK (OSC_CLOCK/P_DIV)
+typedef unsigned char u8;
+typedef unsigned int u32;
+
+void uart0_init(u32 br) {
+
+ /* pin select -> tx rx */
+ PINSEL0&=~((1<<0)|(1<<1)|(1<<2)|(1<<3));
+ PINSEL0|=((1<<0)|(1<<2));
+
+ /* divisor */
+ UART0_LCR|=(1<<7);
+ //UART0_DLL=((OSC_CLOCK/(16*br)))&0xff;
+ //UART0_DLM=(((OSC_CLOCK/(16*br)))&0xff00)>>8;
+ UART0_DLL=65;
+ UART0_DLM=0;
+
+ /* 8 bit data */
+ UART0_LCR=((1<<0)|(1<<1));
+
+ /* activate rx tx fifo */
+ UART0_FCR|=((1<<0)|(1<<1)|(1<<2));
}
-void arm_init(void) {
+void uart_send(u8 byte) {
- /* pin selection */
- uart0_init();
+ /* wait for empty transmit buffer */
+ while(!(UART0_LSR&(1<<5)))
+ continue;
+ UART0_THR=byte;
}
-void main(void) {
+int main(void) {
/* initialization */
- arm_init();
+ uart0_init(9600);
+
+ while(1) {
+ uart_send(0x23);
+ }
+ return 0;
}