完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请问 是不是 _delay_us()的参数必须为常数,不能为变量?
Winavr编译环境下能不能把参数设为变量呢? void AlARM(uint8 t) { uint8 i; for(i=0;i<200;i++) { SPK();_delay_us(t); //由参数t控制形成不同频率输出 } } 以上程序是我照着《单片机C语言程序设计实训100例——基于AVR+proteus仿真》敲出来的,可是编译的时候没通过,出现如下错误. d:toolsatmelavr toolsavr toolchainbin../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:229:28: error: __builtin_avr_delay_cycles expects an integer constant. 原书用的编译器是Winavr,是不是Winavr编译就可以通过?(即Winavr环境下_delay_us()的参数可为变量?). 或者是原书就是错的? 难道升级了反而不方便了?虽然_delay_us()参数设变量不常用,可以直接用定时器中断,但是有问题还是提出吧. 谢谢. |
|
相关推荐
1 个讨论
|
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5122 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7767 浏览 0 评论
3026 浏览 2 评论
3103 浏览 1 评论
10053 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 09:30 , Processed in 0.385218 second(s), Total 44, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号