Clean up AVR timer setup

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3692 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-06-10 23:09:23 +00:00
parent a7baf23d22
commit a126745bdc
2 changed files with 40 additions and 8 deletions

View File

@ -151,15 +151,31 @@ void up_timerinit(void)
OCR1AH = (uint8_t)((uint16_t)MATCH >> 8);
OCR1AL = (uint8_t)((uint16_t)MATCH & 0xff);
/* Setup clock source and compare match behaviour. */
/* Setup clock source and compare match behaviour.
*
* TCRR1A:
* COM1A 0:1 = 00 -> Normal port operation
* COM1B 0:1 = 00 -> Normal port operation
* COM1C 0:1 = 00 -> Normal port operation
* WGM1 0:1 = 00 -> Clear Timer on Compare (CTC) modes of operation
*/
TCCR1A = 0x08 | PRESCALE;
TCCR1A = 0;
/* TCCR1B:
* ICNC1 = 0 -> Input Capture Noise Canceler disabled
* ICES1 = 0 -> Input Capture Edge Select
* WGM 2:3 = 01 -> Clear Timer on Compare (CTC) modes of operation
* CS1 0:2 = xxx ->Selected pre-scaler.
*/
TCCR1B = (1 << WGM12) | PRESCALE;
/* Attach the timer interrupt vector */
(void)irq_attach(AT90USB_IRQ_T2COMPA, (xcpt_t)up_timerisr);
(void)irq_attach(AT90USB_IRQ_T1COMPA, (xcpt_t)up_timerisr);
/* Enable the interrupt on compare match A */
TIMSK1 |= 0x10;
TIMSK1 |= (1 << OCIE1A);
}

View File

@ -151,15 +151,31 @@ void up_timerinit(void)
OCR1AH = (uint8_t)((uint16_t)MATCH >> 8);
OCR1AL = (uint8_t)((uint16_t)MATCH & 0xff);
/* Setup clock source and compare match behaviour. */
/* Setup clock source and compare match behaviour.
*
* TCRR1A:
* COM1A 0:1 = 00 -> Normal port operation
* COM1B 0:1 = 00 -> Normal port operation
* COM1C 0:1 = 00 -> Normal port operation
* WGM1 0:1 = 00 -> Clear Timer on Compare (CTC) modes of operation
*/
TCCR1A = 0x08 | PRESCALE;
TCCR1A = 0;
/* TCCR1B:
* ICNC1 = 0 -> Input Capture Noise Canceler disabled
* ICES1 = 0 -> Input Capture Edge Select
* WGM 2:3 = 01 -> Clear Timer on Compare (CTC) modes of operation
* CS1 0:2 = xxx ->Selected pre-scaler.
*/
TCCR1B = (1 << WGM12) | PRESCALE;
/* Attach the timer interrupt vector */
(void)irq_attach(AT90USB_IRQ_T2COMPA, (xcpt_t)up_timerisr);
(void)irq_attach(ATMEGA_IRQ_T1COMPA, (xcpt_t)up_timerisr);
/* Enable the interrupt on compare match A */
TIMSK1 |= 0x10;
TIMSK1 |= (1 << OCIE1A);
}