论坛风格切换切换到宽版
  • 3849阅读
  • 6回复

求助ICCAVR里C和汇编混编的做法 [复制链接]

上一主题 下一主题
离线永远的FM
 
发帖
12110
只看楼主 倒序阅读 0楼 发表于: 2009-06-13
在iccavr写的程序里要插入一段汇编代码,这段代码是作为子程序使用的(其实就是一段延迟),请问怎样把这段代码插入c语言中能被调用?
其实直接用c语言当然可行,主要是想为以后可能做一些实时控制程序做提前学习。
离线BG4UVR
发帖
11287
只看该作者 1楼 发表于: 2009-06-13
不会,还是直接用c吧。
离线小比尔/5
发帖
2582
只看该作者 2楼 发表于: 2009-06-13
呃...
延迟应该有自带库函数的
汇编这玩意儿太抽象了
你上隔壁问问吧
离线BG7TBL
发帖
2965
只看该作者 3楼 发表于: 2009-06-13
asm("wdr")
asm("nop")
asm("out ubrrh, r17")
离线BG7TBL
发帖
2965
只看该作者 4楼 发表于: 2009-06-13
可以用定时中断做延迟,但是精度不高,
如果要输出准确的脉冲宽度,用pwm吧,
离线永远的FM
发帖
12110
只看该作者 5楼 发表于: 2009-06-14
'
asm("wdr")
asm("nop")
asm("out ubrrh, r17")
'
隔壁给出答案和这个一样。不过问题来了:
子程序怎么定义?还有,每个寄存器里面数据怎么分配的?
离线BG7TBL
发帖
2965
只看该作者 6楼 发表于: 2009-06-14
看看iccavr的帮助文件吧,就在安装目录里,关于函数的传递,应该有答案的,