本程序是《MSP430系列單片機系統工程設計與實踐》書里面的源碼,(包含工程文件 (例3.1.8))完整例程下載:http://www.zg4o1577.cn/bbs/dpj-46245-1.html

關于本程序的詳細解說大家可以點擊上圖下載電子書
- #include <msp430x42x.h>
- int a=1,b=2;
- int c=100,d=200;
- int Temp;
- void Swap(int *x,int *y )
- {
- Temp= *x;
- *x=*y;
- *y=Temp;
- }
- void main( void )
- {
- WDTCTL= WDTPW +WDTHOLD;
- P2OUT=0;
- P2DIR|=BIT0; // P2.0指示燈
- BTCTL = BT_ADLY_500; // 中斷周期500ms
- IE2 |= BTIE; // 允許BasicTimer中斷
- _EINT(); // 允許總中斷
- while(1)
- {
- Swap(&a,&b); // 交換a b
- if((a+b)!=3) // 理論上交換a b后,和不變,等于3
- {
- P2OUT|=BIT0; // 如果出錯,才會執行到這一句(亮燈)
- }
- }
- }
- #pragma vector = BASICTIMER_VECTOR // BasicTimer定時器中斷(1/2秒)
- __interrupt void BT_ISR(void) //
- {
- Swap(&c,&d); // 中斷內交換 c,d的值
- }
復制代碼
重入測試:
- int Fibonacci(int n)
- {
- if (n<3) return(1);
- else return (Fibonacci(n-1)+Fibonacci(n-2));
- }
- void main( void )
- { int a;
- a=Fibonacci(8);
- a++;
- }
復制代碼
|