№ 2977 В разделах: Electronics
Programming
от June 15th, 2011,
В подшивках: MSP430
Это очень простой пример работы с таймером. Уверен, вы найдете ему более полезные применения. Давайте припаяем часовой кварц (32768 Гц) к микроконтроллеру и сделаем тестовую программу.
#include "msp430g2231.h"
#define DIOD 6 //диод на ноге P1.6
unsigned int timerCount = 0;
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0 (void) {
timerCount = (timerCount + 1) % 8;
if(timerCount ==0) {
P1OUT &= ~(1 << DIOD);
for(double i=0; i < 500 ; i++);
P1OUT |= 1 << DIOD; }
}
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
//Initialize pins
P1DIR |= 0xFF;
//timer (oh, shit)
TACCTL0 = CCIE;
TACTL = TASSEL_2 | MC_2;
__enable_interrupt();
__bis_SR_register(LPM0 + GIE); /// LPM0 прерываниями
}
В итоге мы получим вот такую классную мигающую штуку. Зеленый светодиод на плате это и есть тот, которым мы мигаем.
Fortune cookie: Today's spam: We can help.
ну вот, а у меня бы так и пролежала в столе пока не выбросил 🙂