summaryrefslogtreecommitdiff
path: root/firmware/src
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/src')
-rw-r--r--firmware/src/p2m.c30
-rw-r--r--firmware/src/uart.c169
-rw-r--r--firmware/src/uart.h50
3 files changed, 19 insertions, 230 deletions
diff --git a/firmware/src/p2m.c b/firmware/src/p2m.c
index d4ecb21..3f4f2f2 100644
--- a/firmware/src/p2m.c
+++ b/firmware/src/p2m.c
@@ -91,24 +91,32 @@ int main (void)
#ifdef SPI
-#include "LPC17xx.h"
-#include <stdint.h>
-#include "uart.h"
+#include <cli.h>
#include <wm8523.h>
+#include <led.h>
int main (void)
-{
- UARTInit(0, 115200); /* baud rate setting */
+{
+ // SystemCoreClockUpdate();
+ // SystemInit();
- UARTSend(0, (uint8_t *)"init\n\r", 6);
+ LED_Init();
- WM8523_Init();
+ cli_init();
- while (1) {
- UARTSend(0, (uint8_t *)"hello\n\r", 7);
+ cli_write("init");
- _delay( 1 << 22 );
- }
+ _delay(1 << 22);
+
+ WM8523_init();
+
+ cli_write("pre");
+
+ _delay(1 << 22);
+
+ WM8523_configure();
+
+ cli_write("post");
}
#endif
diff --git a/firmware/src/uart.c b/firmware/src/uart.c
deleted file mode 100644
index d3ac789..0000000
--- a/firmware/src/uart.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/****************************************************************************
- * $Id:: uart.c 5751 2010-11-30 23:56:11Z usb00423 $
- * Project: NXP LPC17xx UART example
- *
- * Description:
- * This file contains UART code example which include UART initialization,
- * UART interrupt handler, and APIs for UART access.
- *
- ****************************************************************************
- * Software that is described herein is for illustrative purposes only
- * which provides customers with programming information regarding the
- * products. This software is supplied "AS IS" without any warranties.
- * NXP Semiconductors assumes no responsibility or liability for the
- * use of the software, conveys no license or title under any patent,
- * copyright, or mask work right to the product. NXP Semiconductors
- * reserves the right to make changes in the software without
- * notification. NXP Semiconductors also make no representation or
- * warranty that such application will be suitable for the specified
- * use without further testing or modification.
-****************************************************************************/
-#include <LPC17xx.h>
-#include <stdint.h>//"type.h"
-#include "uart.h"
-
-#define TRUE 1
-#define FALSE 0
-
-volatile uint32_t UART0Status, UART1Status;
-volatile uint8_t UART0TxEmpty = 1, UART1TxEmpty = 1;
-
-/*****************************************************************************
-** Function name: UARTInit
-**
-** Descriptions: Initialize UART port, setup pin select,
-** clock, parity, stop bits, FIFO, etc.
-**
-** parameters: portNum(0 or 1) and UART baudrate
-** Returned value: true or false, return false only if the
-** interrupt handler can't be installed to the
-** VIC table
-**
-*****************************************************************************/
-uint32_t UARTInit( uint32_t PortNum, uint32_t baudrate )
-{
- uint32_t Fdiv;
- uint32_t pclkdiv, pclk;
-
- uint32_t SystemFrequency = SystemCoreClock;
-
- if ( PortNum == 0 )
- {
- LPC_PINCON->PINSEL0 &= ~0x000000F0;
- LPC_PINCON->PINSEL0 |= 0x00000050; /* RxD0 is P0.3 and TxD0 is P0.2 */
- /* By default, the PCLKSELx value is zero, thus, the PCLK for
- all the peripherals is 1/4 of the SystemFrequency. */
- /* Bit 6~7 is for UART0 */
- pclkdiv = (LPC_SC->PCLKSEL0 >> 6) & 0x03;
- switch ( pclkdiv )
- {
- case 0x00:
- default:
- pclk = SystemFrequency/4;
- break;
- case 0x01:
- pclk = SystemFrequency;
- break;
- case 0x02:
- pclk = SystemFrequency/2;
- break;
- case 0x03:
- pclk = SystemFrequency/8;
- break;
- }
-
- LPC_UART0->LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
- Fdiv = ( pclk / 16 ) / baudrate ; /*baud rate */
- LPC_UART0->DLM = Fdiv / 256;
- LPC_UART0->DLL = Fdiv % 256;
- LPC_UART0->LCR = 0x03; /* DLAB = 0 */
- LPC_UART0->FCR = 0x07; /* Enable and reset TX and RX FIFO. */
-
- // NVIC_EnableIRQ(UART0_IRQn);
-
- //LPC_UART0->IER = IER_RBR | IER_THRE | IER_RLS; /* Enable UART0 interrupt */
- return (TRUE);
- }
- else if ( PortNum == 1 )
- {
- LPC_PINCON->PINSEL4 &= ~0x0000000F;
- LPC_PINCON->PINSEL4 |= 0x0000000A; /* Enable RxD1 P2.1, TxD1 P2.0 */
-
- /* By default, the PCLKSELx value is zero, thus, the PCLK for
- all the peripherals is 1/4 of the SystemFrequency. */
- /* Bit 8,9 are for UART1 */
- pclkdiv = (LPC_SC->PCLKSEL0 >> 8) & 0x03;
- switch ( pclkdiv )
- {
- case 0x00:
- default:
- pclk = SystemFrequency/4;
- break;
- case 0x01:
- pclk = SystemFrequency;
- break;
- case 0x02:
- pclk = SystemFrequency/2;
- break;
- case 0x03:
- pclk = SystemFrequency/8;
- break;
- }
-
- LPC_UART1->LCR = 0x83; /* 8 bits, no Parity, 1 Stop bit */
- Fdiv = ( pclk / 16 ) / baudrate ; /*baud rate */
- LPC_UART1->DLM = Fdiv / 256;
- LPC_UART1->DLL = Fdiv % 256;
- LPC_UART1->LCR = 0x03; /* DLAB = 0 */
- LPC_UART1->FCR = 0x07; /* Enable and reset TX and RX FIFO. */
-
- // NVIC_EnableIRQ(UART1_IRQn);
-
- LPC_UART1->IER = IER_RBR | IER_THRE | IER_RLS; /* Enable UART1 interrupt */
- return (TRUE);
- }
- return( FALSE );
-}
-
-/*****************************************************************************
-** Function name: UARTSend
-**
-** Descriptions: Send a block of data to the UART 0 port based
-** on the data length
-**
-** parameters: portNum, buffer pointer, and data length
-** Returned value: None
-**
-*****************************************************************************/
-void UARTSend( uint32_t portNum, uint8_t *BufferPtr, uint32_t Length )
-{
- if ( portNum == 0 )
- {
- while ( Length != 0 )
- {
- /* THRE status, contain valid data */
- //while ( !(UART0TxEmpty & 0x01) );
- LPC_UART0->THR = *BufferPtr;
- UART0TxEmpty = 0; /* not empty in the THR until it shifts out */
- BufferPtr++;
- Length--;
- }
- }
- else
- {
- while ( Length != 0 )
- {
- /* THRE status, contain valid data */
- while ( !(UART1TxEmpty & 0x01) );
- LPC_UART1->THR = *BufferPtr;
- UART1TxEmpty = 0; /* not empty in the THR until it shifts out */
- BufferPtr++;
- Length--;
- }
- }
- return;
-}
-
-/******************************************************************************
-** End Of File
-******************************************************************************/
diff --git a/firmware/src/uart.h b/firmware/src/uart.h
deleted file mode 100644
index 870f581..0000000
--- a/firmware/src/uart.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
- * $Id:: uart.h 5751 2010-11-30 23:56:11Z usb00423 $
- * Project: NXP LPC17xx UART example
- *
- * Description:
- * This file contains UART code header definition.
- *
- ****************************************************************************
- * Software that is described herein is for illustrative purposes only
- * which provides customers with programming information regarding the
- * products. This software is supplied "AS IS" without any warranties.
- * NXP Semiconductors assumes no responsibility or liability for the
- * use of the software, conveys no license or title under any patent,
- * copyright, or mask work right to the product. NXP Semiconductors
- * reserves the right to make changes in the software without
- * notification. NXP Semiconductors also make no representation or
- * warranty that such application will be suitable for the specified
- * use without further testing or modification.
-****************************************************************************/
-#ifndef __UART_H
-#define __UART_H
-
-#define IER_RBR 0x01
-#define IER_THRE 0x02
-#define IER_RLS 0x04
-
-#define IIR_PEND 0x01
-#define IIR_RLS 0x03
-#define IIR_RDA 0x02
-#define IIR_CTI 0x06
-#define IIR_THRE 0x01
-
-#define LSR_RDR 0x01
-#define LSR_OE 0x02
-#define LSR_PE 0x04
-#define LSR_FE 0x08
-#define LSR_BI 0x10
-#define LSR_THRE 0x20
-#define LSR_TEMT 0x40
-#define LSR_RXFE 0x80
-
-#define BUFSIZE 0x40
-
-uint32_t UARTInit( uint32_t portNum, uint32_t Baudrate );
-void UARTSend(uint32_t portNum, uint8_t *BufferPtr, uint32_t Length );
-
-#endif /* end __UART_H */
-/*****************************************************************************
-** End Of File
-******************************************************************************/