#include <stdio.h>
#include <unistd.h> // sleep 函数包索引
int flag = 0;
int flag1 =0;
int cishu = 0;
int jhcs = 3;
// bool 是二进制类型;
void test(int bit, int val)
{
// 由于 main 函数,我得到 数值: 1 1
printf("我是控制灯函数...");
// int const Mask = Bits1_GetMsk(bit);
if (val){
printf("c 中的 if 默认条件:当前 val 的值不为空,或者不为0 条件成立 ; 我的值是:%d 等于接收都控制信号" , val);
} else {
printf("val 为 0 或者 为空, if 的默认条件就不成立");
}
}
void shanshuo(void)
{
if (flag == 0)
{
test(0,1);
flag=1;
// 因为需要实现 闪灯,一会关一会开,因此开启后关闭,实现闪烁
printf(" \n \n 【当前控制灯为 开】 \n 当前 flag 的值为 0 , 我执行函数 写入 1 开启灯 ; 函数控制硬件后,我将其 设置为1 进行变换 \n \n ");
}
else
{
test(0,0);
flag=0;
// 因为 flag 的值不为 0 ,因此将其赋值为 0 ,等于将 1 变换成 0 ,实现开关作用,闪烁
printf(" \n \n 【当前控制灯为 关】 \n 当前 flag 的值不为 0 , 我执行函数 写入 0 关闭灯 ; 函数控制硬件后,我将其 设置为0 进行变换 \n \n ");
}
}
int main()
{
while(1)
{
printf("测试无限循环打印");
usleep(200000);
cishu++;
printf("当前 得到 次数 :%d \n" , cishu);
shanshuo();
if (cishu > jhcs )
{
printf("当前循环执行闪烁次数:%d 已经超过计划次数: %d 现在退出 闪烁功能 \n " , cishu, jhcs);
break ; // 退出本函数,或者退出循环
} else {
printf("当前已经执行次数: %d \n", cishu);
}
}
printf("循环函数 停止运行了! ");
}
/*
1.转换说明符
%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)
%c 字符
%d 有符号十进制整数
%f 浮点数(包括float和double)
%e(%E) 浮点数指数输出[e-(E-)记数法]
%g(%G) 浮点数不显无意义的零"0"
%i 有符号十进制整数(与%d相同)
%u 无符号十进制整数
%o 八进制整数 e.g. 0123
%x(%X) 十六进制整数<?xml:namespace prefix = st1 />() e.g. 0x1234
%p 指针
%s 字符串
%% "%"
参考:https://blog.csdn.net/qq_29874741/article/details/94626531
0 0x0f 0xf0 0x08 --> 0000 1000
#define clrSetReg8Bits(RegName, ClrMask, SetMask) f0 08 (RegName = (RegName & ((byte)(~(byte)(ClrMask)))) | (byte)(SetMask))
存储器: 当前是与非或计算: 由于前面函数传入:参数 0xf0 0x08u
(~(byte)(ClrMask)) : f0 非运算: 原值为1 则非计算 为0 ; 再与 0 与计算 有0 为0 ; 再与 | (byte)(SetMask) 或计算
*/Powered by ddoss.cn 12.0
©2015 - 2025 ddoss
渝公网安备50011302222260号
渝ICP备2024035333号
【实验平台安全承诺书】
小绿叶技术社区,优化网络中,点击查看配置信息
主机监控系统: 安全防火墙已开启检查cc攻击-下载文件完成后等待10s 恢复访问,检查连接数低于峰值恢复访问
您的IP:216.73.216.110,2025-12-01 14:35:02,Processed in 0.01566 second(s).