130 lines
3.1 KiB
C
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);
|
|
|