Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
#define TXD 0x02
#define BITTIME 0x6C
#define BIT_CNT 0xA
unsigned _data;
unsigned Data;
unsigned BitCnt;
unsigned char i;
char string1[] = "ABC" ;
void TransmitData(unsigned _data)
{
BitCnt = BIT_CNT;
Data = _data;
CCR0 = TAR;
CCR0 += BITTIME;
Data |= 0x100;
Data = Data << 1;
CCTL0 = OUTMOD0 + CCIE;
while (CCTL0 & CCIE);
}
void Init(void)
{
WDTCTL = WDTPW + WDTHOLD;
CCTL0 = OUT;
TACTL = TASSEL_2 + MC_2;
P1SEL = TXD;
P1DIR = TXD;
WDTCTL = WDT_ADLY_1000;
IE1 = WDTIE;
__enable_interrupt();
}
void main (void)
{
Init();
while (1);
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A(void)
{
CCR0 += BITTIME;
if (BitCnt == 0)
CCTL0 &= ~CCIE;
else
{
CCTL0 |= OUTMOD2;
if (Data & 0x01)
CCTL0 &= ~ OUTMOD2;
Data = Data >> 1;
BitCnt--;
}
}
#pragma vector = WDT_VECTOR
__interrupt void WDT_Handler(void)
{
__enable_interrupt();
TransmitData(10);
}