动态 版块 发帖 消息 我的
小绿叶技术博客
小绿叶技术博客
小绿叶技术Lv154   
c 控制led 灯逻辑代码     


#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)  或计算


*/







 4  已被阅读了1074次  楼主 2023-01-13 19:02:12
回复列表

回复: c 控制led 灯逻辑代码

guest
登录之后更精彩~
Powered by HadSky 7.12.10
© 2015-2024 PuYueTian
您的IP:44.221.66.130,2024-06-20 14:53:01,Processed in 0.01977 second(s).
Powered by HadSky
小绿叶技术博客