Gast
#4436743
#include <msp430fr5739.h>
volatile int count=0;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //stop watchdog
_enable_interrupts();
P1SEL0 |= BIT0; // INPUT CC1A FÜR CAPTURE wählen
CSCTL0_H = 0xA5; //password
CSCTL3 = DIVA_0 + DIVS_0 + DIVM_0; //set all divider to 1 to get
8MHz on internal clock
// TIMER A
TA0CTL &= ~MC_3; //Stop timer
TA0CTL |= TACLR; //clear counter
TA0CCTL1 |= CAP + CM_1 + CCIS_0 +SCS;//capture mode, capture on
positive edge, CCIxA as input source, synchronize
TA0CCTL0 |= CCIE; // ENABLE INTERRUPT
TA0CTL |= TASSEL__SMCLK + MC__UP; //SMCLK,count mode: up
for(;;)
{
}
}
//INTERRUPT SERVICE ROUTINE
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer0_A0 (void)
{
count++; //wenn flanke detektiert, dann hochzählen
}
hallo freunde,
ich möchte mit dem MSP430 ein signal, das mit einem manchester code
codiert ist auswerten. dazu wollte ich zu erst probieren, ob ich es
schaffe eine positive flanke mit hilfe der capture funktion des timer A
zu erkennen. es passiert aber nichts, der interrupt wird nicht
ausgelöst.
den input erzeuge ich mit einem anderen msp430. sind 7 bits, manchester
codiertm, frequenz bei 1000Hz, die sich immer wieder wiederholen.
hab mir ein paar beispiel programme angeschaut im internet, wo das ganze
ähnlich gemacht wird. ich finde den fehler in meinem programm aber
nicht.
könnt ihr erkennen, wo der fehler liegt?
vielen dank schonmal für die antworten