初学C语言单片机 求大佬指点一下

weixin_45631157 2019-09-11 08:51:10
void delay(u16 i) { while(i――); } 有错误,怎么改?纠结一天了 在线等
...全文
107 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
通信小卒 2019-09-12
  • 打赏
  • 举报
回复
引用 1 楼 weixin_45631157的回复:
这是完整的程序 #include <reg52.h> typedef unsigned int u16; typedef unsigned char u8; sbit right1 = P0^0; sbit right2 = P0^1; sbit left1 = P0^2; sbit left2 = P0^3; void delay(u16 i) { while(i--); } void left() { right1 = 0; right2 = 1; left1 = 0; left2 = 0; } void left_back() { right1 = 1; right2 = 0; left1 = 0; left2 = 0; } void right() { right1 = 0; right2 = 0; left1 = 1; left2 = 0; } void right_back() { right1 = 0; right2 = 0; left1 = 0; left2 = 1; } void run() { right1 = 0; right2 = 1; left1 = 1; left2 = 0; } void dig_left() { right1 = 1; right2 = 0; left1 = 1; left2 = 0; } void dig_right() { right1 = 0; right2 = 1; left1 = 0; left2 = 1; } void run_back() { right1 = 1; right2 = 0; left1 = 0; left2 = 1; } void stop() { right1 = 0; right2 = 0; left1 = 0; left2 = 0; } void main() { while(1) { run(); delay(10000000); dig_left(); delay(10000000); dig_right(); delay(10000000); run_back(); delay(10000000); stop(); delay(10000000); } }
看你u16是int型,不清楚你的系统情况,u16指的是16位吗?
通信小卒 2019-09-12
  • 打赏
  • 举报
回复
引用 1 楼 weixin_45631157的回复:
这是完整的程序 #include <reg52.h> typedef unsigned int u16; typedef unsigned char u8; sbit right1 = P0^0; sbit right2 = P0^1; sbit left1 = P0^2; sbit left2 = P0^3; void delay(u16 i) { while(i--); } void left() { right1 = 0; right2 = 1; left1 = 0; left2 = 0; } void left_back() { right1 = 1; right2 = 0; left1 = 0; left2 = 0; } void right() { right1 = 0; right2 = 0; left1 = 1; left2 = 0; } void right_back() { right1 = 0; right2 = 0; left1 = 0; left2 = 1; } void run() { right1 = 0; right2 = 1; left1 = 1; left2 = 0; } void dig_left() { right1 = 1; right2 = 0; left1 = 1; left2 = 0; } void dig_right() { right1 = 0; right2 = 1; left1 = 0; left2 = 1; } void run_back() { right1 = 1; right2 = 0; left1 = 0; left2 = 1; } void stop() { right1 = 0; right2 = 0; left1 = 0; left2 = 0; } void main() { while(1) { run(); delay(10000000); dig_left(); delay(10000000); dig_right(); delay(10000000); run_back(); delay(10000000); stop(); delay(10000000); } }
u16的最大值是65536,你给delay传递的值太大了
gouyanfen 2019-09-11
  • 打赏
  • 举报
回复
错误在那里,贴错误出来看看
weixin_45631157 2019-09-11
  • 打赏
  • 举报
回复
这是完整的程序 #include <reg52.h> typedef unsigned int u16; typedef unsigned char u8; sbit right1 = P0^0; sbit right2 = P0^1; sbit left1 = P0^2; sbit left2 = P0^3; void delay(u16 i) { while(i--); } void left() { right1 = 0; right2 = 1; left1 = 0; left2 = 0; } void left_back() { right1 = 1; right2 = 0; left1 = 0; left2 = 0; } void right() { right1 = 0; right2 = 0; left1 = 1; left2 = 0; } void right_back() { right1 = 0; right2 = 0; left1 = 0; left2 = 1; } void run() { right1 = 0; right2 = 1; left1 = 1; left2 = 0; } void dig_left() { right1 = 1; right2 = 0; left1 = 1; left2 = 0; } void dig_right() { right1 = 0; right2 = 1; left1 = 0; left2 = 1; } void run_back() { right1 = 1; right2 = 0; left1 = 0; left2 = 1; } void stop() { right1 = 0; right2 = 0; left1 = 0; left2 = 0; } void main() { while(1) { run(); delay(10000000); dig_left(); delay(10000000); dig_right(); delay(10000000); run_back(); delay(10000000); stop(); delay(10000000); } }

70,021

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧