找回密码
 立即注册
×

00:00:00

您有一张0.1元限时体验卡,马上领取获得VIP尊享特权。

实在是没办法了,弄了一晚上了还是弄不好 AI 帮人写的代码

2024-6-29 23:35 来自 vb2002 发布 @ 综合讨论

这段代码用 AI 编程写的.

试了很多遍,现在只能实现按键换挡,一直这样循环.
我的代码想要 按键换挡,但是如果3秒内没有换挡,
再次按下按键,就关闭LED.  最好是加上 记忆上次关闭时的档位.
下次开机直接进入上次关闭时的档位.
感觉是定时器中断没有 参与进来.
麻烦大神们帮看看把.苦恼死我了
  1. #include <STC8G.H>
  2. #include "intrins.h"

  3. sbit LED1=P3^3;
  4. sbit KEY1=P3^2;

  5. #define MAIN_Fosc 11059200UL
  6. #define ON 0
  7. #define OFF 1

  8. typedef unsigned char u8;
  9. typedef unsigned int u16;


  10. static u8 ld = 0;
  11. static u8 gear = 0;
  12. static u16 noShiftTime = 0; // 自上次换挡以来的时间  

  13. void pwm_init(void);
  14. void delayms(u16 ms);
  15. void timer0_init();
  16. void process_key_press();
  17. void update_led_brightness(u8 gear);

  18. void main() {
  19.     // I/O口配置
  20.     P0M0 = 0x00; P0M1 = 0x00;
  21.     P1M0 = 0x00; P1M1 = 0x00;
  22.     P2M0 = 0x00; P2M1 = 0x00;
  23.     P4M0 = 0x00; P4M1 = 0x00;
  24.     P5M0 = 0x00; P5M1 = 0x00;
  25.     P3M0 = 0x00; P3M1 = 0x00;
  26.     P_SW2=0x80;

复制代码

免责声明:

本平台旨在开源共享精神,请勿发布敏感信息,任何违法信息我们将移交公安机关;

热门标签 更多

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-14 22:19 , Processed in 0.064965 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部