东西红灯点亮20秒,南北绿灯点亮20秒;东西红灯点亮3秒,南北绿灯闪烁3秒;东西红灯点亮2秒,南北黄灯点亮2秒;东西绿灯点亮20秒,南北红灯点亮20秒;东西绿灯闪烁3秒,南北红灯闪烁3秒;东西黄灯点亮2秒,南北红灯点亮2秒,依次循环。要求用sd控制
1条回答 默认 最新
- 张卷地 2023-03-07 12:58关注
#include "msp430g2553.h" #include "ff.h" FATFS fs; FIL file; UINT readbytes; char* mode = "r"; char line[100]; int state = 0; int main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P1DIR = 0x0F; // P1.0 ~ P1.3输出 P1OUT = 0; // 输出低电平 int res = f_mount(&fs, "", 1); // 初始化SD卡 if (res != FR_OK) { return -1; } res = f_open(&file, "signals.txt", FA_READ | FA_OPEN_EXISTING); if (res != FR_OK) { return -1; } while (1) { res = f_gets(line, sizeof(line), &file); // 读取文件 if (res != FR_OK || line[0] == '\0') { f_lseek(&file, 0); continue; } switch (state) { case 0: P1OUT = 0x01; // 东西红灯点亮20秒 __delay_cycles(20000000); state = 1; break; case 1: P1OUT = 0x0C; // 南北绿灯点亮20秒 __delay_cycles(20000000); state = 2; break; case 2: P1OUT = 0x01; // 东西红灯点亮3秒 __delay_cycles(3000000); state = 3; break; case 3: P1OUT = 0x0C; // 南北绿灯闪烁3秒 __delay_cycles(3000000); P1OUT = 0; // 南北红灯闪烁3秒 __delay_cycles(3000000); state = 4; break; case 4: P1OUT = 0x02; // 东西黄灯点亮2秒 __delay_cycles(2000000); state = 5; break; case 5: P1OUT = 0x0C; // 南北红灯点亮20秒 __delay_cycles(20000000); state = 6; break; case 6: P1OUT = 0x02; // 东西绿灯闪烁3秒 __delay_cycles(3000000); P1OUT = 0; // 南北红灯闪烁3秒 __delay_cycles(3000000); state = 0; break; } } }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵