bossay_release_out/vendor/bossay/Paomadeng/demo_paomadeng/paomadeng.c
2025-09-24 11:16:14 +08:00

130 lines
3.1 KiB
C

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "iot_gpio.h"
#include "iot_gpio_ex.h"
#define OUT_GPIO2 2
#define OUT_GPIO7 7
#define OUT_GPIO8 8
#define OUT_GPIO9 9
#define OUT_GPIO10 10
#define OUT_GPIO11 11
#define OUT_GPIO12 12
#define OUT_GPIO13 13
int BH1750_InitMainLed(void)
{
IoTGpioInit(OUT_GPIO7);
IoTGpioSetFunc(OUT_GPIO7, IOT_GPIO_FUNC_GPIO_7_GPIO);
IoTGpioSetDir(OUT_GPIO7, IOT_GPIO_DIR_OUT);
IoTGpioInit(OUT_GPIO8);
IoTGpioSetFunc(OUT_GPIO8, IOT_GPIO_FUNC_GPIO_8_GPIO);
IoTGpioSetDir(OUT_GPIO8, IOT_GPIO_DIR_OUT);
IoTGpioInit(OUT_GPIO9);
IoTGpioSetFunc(OUT_GPIO9, IOT_GPIO_FUNC_GPIO_9_GPIO);
IoTGpioSetDir(OUT_GPIO9, IOT_GPIO_DIR_OUT);
IoTGpioInit(OUT_GPIO10);
IoTGpioSetFunc(OUT_GPIO10, IOT_GPIO_FUNC_GPIO_10_GPIO);
IoTGpioSetDir(OUT_GPIO10, IOT_GPIO_DIR_OUT);
IoTGpioInit(OUT_GPIO11);
IoTGpioSetFunc(OUT_GPIO11, IOT_GPIO_FUNC_GPIO_11_GPIO);
IoTGpioSetDir(OUT_GPIO11, IOT_GPIO_DIR_OUT);
IoTGpioInit(OUT_GPIO12);
IoTGpioSetFunc(OUT_GPIO12, IOT_GPIO_FUNC_GPIO_12_GPIO);
IoTGpioSetDir(OUT_GPIO12, IOT_GPIO_DIR_OUT);
IoTGpioInit(OUT_GPIO13);
IoTGpioSetFunc(OUT_GPIO13, IOT_GPIO_FUNC_GPIO_13_GPIO);
IoTGpioSetDir(OUT_GPIO13, IOT_GPIO_DIR_OUT);
return 0;
}
void pmd(int i )
{
switch (i)
{
case 0:
IoTGpioSetOutputVal(OUT_GPIO12, 1);
break;
case 1:
IoTGpioSetOutputVal(OUT_GPIO10, 1);
break;
case 2:
IoTGpioSetOutputVal(OUT_GPIO9, 1);
break;
case 3:
IoTGpioSetOutputVal(OUT_GPIO11, 1);
break;
case 4:
IoTGpioSetOutputVal(OUT_GPIO13, 1);
break;
case 5:
IoTGpioSetOutputVal(OUT_GPIO2, 1);
break;
case 6:
IoTGpioSetOutputVal(OUT_GPIO7, 1);
break;
case 7:
IoTGpioSetOutputVal(OUT_GPIO8, 1);
break;
default:
IoTGpioSetOutputVal(OUT_GPIO2, 0); // 设置GPIO_7输出低电平关闭灯
IoTGpioSetOutputVal(OUT_GPIO7, 0);
IoTGpioSetOutputVal(OUT_GPIO8, 0);
IoTGpioSetOutputVal(OUT_GPIO9, 0);
IoTGpioSetOutputVal(OUT_GPIO10, 0);
IoTGpioSetOutputVal(OUT_GPIO11, 0);
IoTGpioSetOutputVal(OUT_GPIO12, 0); //
IoTGpioSetOutputVal(OUT_GPIO13, 0);
break;
}
}
static void IotMainEntry(void)
{
int i=0;
BH1750_InitMainLed();
while(1)
{
for(i=0;i<9;i++)
{
pmd(i);
// usleep(1000);
osDelay(100);
}
}
}
static void TestTask(void)
{
osThreadAttr_t attr;
attr.name = "IotMainEntry";
attr.attr_bits = 0U;
attr.cb_mem = NULL;
attr.cb_size = 0U;
attr.stack_mem = NULL;
attr.stack_size = 1024;
attr.priority = osPriorityNormal;
if (osThreadNew((osThreadFunc_t)IotMainEntry, NULL, &attr) == NULL) {
printf("[TestTask] Falied to create rtosv2_producer_consumer_main!\n");
}
}
APP_FEATURE_INIT(TestTask);