搜索
bottom↓
回复: 13

官网历程 中switch case用法不解

[复制链接]

出0入0汤圆

发表于 2014-1-24 11:18:34 | 显示全部楼层 |阅读模式
// Timer_A3 Interrupt Vector (TAIV) handler
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void)
{
  switch (TAIV, 10)        // Efficient switch-implementation
  {
    case  2:  break;                        // TACCR1 not used
    case  4:  break;                        // TACCR2 not used
    case 10:  P1OUT ^= 0x01;                // overflow
              break;
  }
}
这段代码switch (TAIV, 10) 这里是什么意思?

出0入0汤圆

发表于 2014-1-24 11:54:57 | 显示全部楼层
IAR编译器手册中应该有说明,这是针对430中断向量的优化写法,可以生成很高效的代码。

出0入0汤圆

发表于 2014-1-24 12:13:19 | 显示全部楼层
逗号运算符

出0入0汤圆

发表于 2014-1-24 12:22:12 | 显示全部楼层
是逗号运算,这不就是固定值判断嘛,为什么要搞得这么复杂,确实不解

出0入0汤圆

发表于 2014-1-24 12:39:13 | 显示全部楼层
补充一下,二楼说的有问题。优化的写法应该是这样的:
  1. #pragma vector=TIMERA1_VECTOR
  2. __interrupt void Timer_A1_ISR(void)
  3. {
  4. switch (__even_in_range(TAIV, 10))
  5. {
  6. case 2: P1POUT ˆ= 0x04;
  7. break;
  8. case 4: P1POUT ˆ= 0x02;
  9. break;
  10. case 10: P1POUT ˆ= 0x01;
  11. break;
  12. }
  13. }
复制代码

出0入0汤圆

发表于 2014-1-24 12:51:05 | 显示全部楼层
  1. 以后发代码,请使用插入代码?OK?
复制代码

出0入0汤圆

 楼主| 发表于 2014-1-24 13:55:17 | 显示全部楼层

什么意思 请您解释下~

出0入0汤圆

发表于 2014-1-24 13:56:03 | 显示全部楼层
IAR 430 特有的代码。。。很好用,针对寄存器位的SWITCH语句

出0入0汤圆

发表于 2014-1-24 15:16:17 | 显示全部楼层
用于生成跳转表?

出0入0汤圆

 楼主| 发表于 2014-1-24 16:20:07 | 显示全部楼层

不懂啊~

出0入0汤圆

发表于 2014-1-24 16:28:13 | 显示全部楼层
就是TAIV是10以内的偶数时才进入switch判断

出0入0汤圆

发表于 2015-1-8 10:47:14 | 显示全部楼层
同样求解

出0入0汤圆

发表于 2015-2-11 19:51:40 | 显示全部楼层
专注XXOO三十年 发表于 2014-1-24 12:39
补充一下,二楼说的有问题。优化的写法应该是这样的:

他那个应该是封装的一个函数 然后返回1以内的偶数值吧 我没看源文件 我只是猜测

出0入0汤圆

发表于 2015-2-28 16:47:28 | 显示全部楼层
小于等于10以内的数
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 06:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表