完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
官方例程中会出现这样的代码,请问__attribute__ ((interrupt(USCI_A0_VECTOR)))与__even_in_range(UCA0IV,4)的作用是什么?为什么不能直接判断UCA0IV的值而要调用__even_in_range函数???
[C] 纯文本查看 复制代码 #if defined(__ti_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)#pragma vector=USCI_A0_VECTOR__interrupt void USCI_A0_ISR(void)#elif defined(__GNUC__)void __attribute__ ((interrupt(USCI_A0_VECTOR))) USCI_A0_ISR (void)#else#error Compiler not supported!#endif{ volatile unsigned int i; switch(__even_in_range(UCA0IV,4)) { case 0: break; // Vector 0 - no interrupt case 2: // Vector 2 - RXIFG while (!(UCA0IFG&UCTXIFG)); // USCI_A0 TX buffer ready? if (UCA0RXBUF==SLV_Data) // Test for correct character RX'd P1OUT |= 0x01; // If correct, light LED else P1OUT &= ~0x01; // If incorrect, clear LED MST_Data++; // Increment data SLV_Data++; UCA0TXBUF = MST_Data; // Send next value for(i = 20; i>0; i--); // Add time between transmissions to // make sure slave can process information break; case 4: break; // Vector 4 - TXIFG default: break; }} |
|
相关推荐
3个回答
|
|
原型为: __intrinsic unsigned short __even_in_range(unsigned short __value, unsigned short __bound);在msp430里经常被用在多源中断的查询中,如 switch( __even_in_range(TAIV,10)只有在TAIV的值是在0--10内的偶数时才会执行switch函数内的语句其作用是提高switch语句的效率
|
|
|
|
__attribute__ 指定属性什么的,不懂
|
|
|
|
百度啊....
|
|
|
|
只有小组成员才能发言,加入小组>>
3057个成员聚集在这个小组
加入小组2989 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3717 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2367 浏览 1 评论
4835 浏览 1 评论
2596 浏览 1 评论
1637浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3719浏览 2评论
2990浏览 1评论
1829浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 03:58 , Processed in 1.182781 second(s), Total 51, Slave 45 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号