用信号源试了下 已经实现了每秒取200个点 然后上传到上位机。
但是现在有个问题
就是我在main里面
写了两个中断,先写了AD中断,又写了定时器中断。
然后debug
让程序一直跑的时候输出的结果没问题,可是我单步调试的时候 就一直在AD中断里面一直循环,求问一下这是什么情况呀??
因为这个只是个简单的程序,后面我还要在这个基础上改好多东西,加好多东西,所以想搞清楚,请问下~非常感谢!
- #include <msp430f5529.h>
- #include "ADfunction.h"
- #include "uart.h"
- #include "timer.h"
- typedef unsigned int uint;
- typedef unsigned char uchar;
- //volatile unsigned int results[num_of_results]; //开辟8个16位内存空间
- //static uchar index = 0;;
- uint temp;
- uchar result;
- //uint average;
- char buffer1[6];
- void main( void )
- {
-
- // Stop watchdog timer to prevent time out reset
- WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
- Init_ADC();
- uart_init();
- timer();
- buffer1[5]='\0';
-
- __bis_SR_register(LPM0_bits + GIE);
- }
- #pragma vector = ADC12_VECTOR
- __interrupt void ADC12ISR (void)
- {
- switch(__even_in_range(ADC12IV,34))
- {
- case 0 : break;
- case 2 : break;
- case 4 : break;
- case 6 :
-
- temp = ADC12MEM0;
-
- break;
- case 8 :break;
-
- default : break;
- }
- }
- #pragma vector=TIMER0_A0_VECTOR
- __interrupt void TIMER0_A0_ISR(void)
- {
-
-
- uchar i;
- Tran_val(temp,buffer1);
- buffer1[4] = buffer1[3];
- buffer1[3] = buffer1[2];
- buffer1[2] = buffer1[1];
- buffer1[1] = 0x2e - 0x30;
- for(i=0;i<4;i++)
- {
- buffer1[i] += 0x30;
- }
-
-
- uart_tx_string(buffer1);
- uart_tx_string("\r");
- }
-
-
复制代码
|