We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi all,
I am studying ARM LPC2103 and try a simple delay code with timer 1
#include <lpc210x.h> void set_up_PLL(void) { PLLCFG=0x00000024; //xtal=12Mhz, cclk=60Mhz => M=5, P=2 PLLCON=0x00000003; //PLL contected, PLL enabled PLLFEED=0x000000AA; PLLFEED=0x00000055; //PLL feeded VPBDIV=0x000000002; //pclk=1/2cclk } void set_up_timer1(void) { T1CTCR=0x00000000; //timer1 set as a timer, so T1CTCR[1:0]=00 T1PR=0x00000009; //Pclk devided by 10 when using for Timer1 T1MR0=0x002DC6C0; //T1MRO=3000000, after rising pulse, PC register increases by 1, when PC register reaches to 9 //which means that 10 rising pulses executed, PC register will be reset and TC will increase by 1 //when TC reaches to value in T1MR0=3000000 that means there would have been 30000000 pulses rose by //pclk (similar with time of 1 second) there will be a event depending on set up of T1MCR register T1MCR=0x00000002; //the event selected is to reset timer1 so T1MCR[2:0]=0b101; } void set_up_outputpin(void) { PINSEL1=0x00000020; // pin P0.19 is selected as MAT1.2 T1EMR=0x00000300; //after timer1 reset, pin MAT1.2 (P0.19) will be reversed bit, so T1EMR[5:4] should be 1:1 } int main(void) { set_up_PLL(); //set up PLL so that cclk=60Mhz, pclk=30Mhz set_up_timer1(); //set up timer1 as timer to count Pclk rising pulses, after 1s, 1 event will reset timer 1 set_up_outputpin(); //set up status of output pin when events generated by timer1 T1TCR=0x00000002; //reset timer1 T1TCR=0X00000001; //enable time1; while(1) { ; } }
I built it without issue but when I run it on real board. It seem nothing executed. I don't know why. I think at least it run wrong result, it not able to do nothing like that. Please help me solve issue.
Thanks and Best regards, Nguyen, Uy Danh
Have you tried it in the Simulator.
What debugging have you done?
What board are you using? Are you sure the hardware is OK?