Added a load of debug lines

Basically this outputs a load of stuff to the serial port. I'm just
using this to get an idea of where the error lies within the code...
pull/17/head
Matthew Else 2013-07-19 16:56:49 +01:00
parent 9097bf7f55
commit 84a76cd8d8
4 changed files with 24 additions and 5 deletions

View File

@ -25,6 +25,9 @@ void wait_ms(int ms) {
}
void wait_us(int us) {
printf("Here!\r\n");
uint32_t start = us_ticker_read();
printf("next\r\n");
while ((us_ticker_read() - start) < us);
printf("End\r\n");
}

View File

@ -31,19 +31,25 @@
#define NVIC_RAM_VECTOR_ADDRESS (0x10000000) // Vectors positioned at start of RAM
void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
printf("X\r\n");
int i;
printf("0a\r\n");
// Space for dynamic vectors, initialised to allocate in R/W
static volatile uint32_t* vectors = (uint32_t*)NVIC_RAM_VECTOR_ADDRESS;
printf("1a\r\n");
// Copy and switch to dynamic vectors if first time called
if((LPC_SYSCON->SYSMEMREMAP & 0x3) != 0x1) {
printf("2a\r\n");
uint32_t *old_vectors = (uint32_t *)0; // FLASH vectors are at 0x0
printf("Old_vectors: %i\r\n", old_vectors);
for(i = 0; i < NVIC_NUM_VECTORS; i++) {
printf("3a\r\n");
vectors[i] = old_vectors[i];
}
printf("4a\r\n");
LPC_SYSCON->SYSMEMREMAP = 0x1; // Remaps 0x0-0x1FF FLASH block to RAM block
}
printf("5a\r\n");
// Set the vector
vectors[IRQn + 16] = vector;
}

View File

@ -23,19 +23,26 @@
int us_ticker_inited = 0;
void us_ticker_init(void) {
printf("0\r\n");
if (us_ticker_inited) return;
us_ticker_inited = 1;
printf("1\r\n");
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<10); // Clock TIMER_1
printf("2\r\n");
uint32_t PCLK = SystemCoreClock;
printf("3\r\n");
US_TICKER_TIMER->TCR = 0x2; // reset
printf("4\r\n");
uint32_t prescale = PCLK / 1000000; // default to 1MHz (1 us ticks)
printf("5\r\n");
US_TICKER_TIMER->PR = prescale - 1;
printf("6\r\n");
US_TICKER_TIMER->TCR = 1; // enable = 1, reset = 0
printf("7\r\n");
NVIC_SetVector(US_TICKER_TIMER_IRQn, (uint32_t)us_ticker_irq_handler);
printf("8\r\n");
NVIC_EnableIRQ(US_TICKER_TIMER_IRQn);
}
@ -43,6 +50,8 @@ uint32_t us_ticker_read() {
if (!us_ticker_inited)
us_ticker_init();
printf("Hello!!!\r\n");
return US_TICKER_TIMER->TC;
}

View File

@ -8,6 +8,7 @@ int main() {
led = 1;
printf("LED on\r\n");
wait(0.5);
printf("After wait\r\n");
led = 0;
wait(0.5);
}