资源简介
系统是利用P9813模块来实现照明与彩灯闪烁等功能,P9813模块输入电压为5V~6.5V,内置红绿蓝三原色led灯,通过P9813模块可以控制彩灯的颜色以及亮度。同时,
代码片段和文件信息
/*
*========================================================================================================
*
* File : RGB_LED.c
* Hardware Environment:
* Build Environment : AVR Studio 4.18 + Winavr 20100110
* Version : V1.0
* By : Chen Zhe
*
* (c) Copyright 2013-2017 WaveShare
* http://www.waveShare.net
* All Rights Reserved
*
*========================================================================================================
*/
#include
#include “avr_rgb_led.h“
uint8 Color_R=0;
uint8 Color_G=0;
uint8 Color_B=0;
uint8 C_Loop=0;
void delay_ms(unsigned int ms)
{
for(volatile unsigned int i=0;i
}
/************ generation clock *********************/
void ClkProduce(void)
{
SCL_LOW; // SCL=0
delay_ms(20);
SCL_HIGH; // SCL=1
delay_ms(20);
}
/********** send 32 zero ********************/
void Send32Zero(void)
{
unsigned char i;
SDA_LOW; // SDA=0
for (i=0; i<32; i++)
{
ClkProduce();
}
}
/********* invert the grey value of the first two bits ***************/
uint8 TakeAntiCode(uint8 dat)
{
uint8 tmp = 0;
tmp=((~dat) & 0xC0)>>6;
return tmp;
}
/****** send gray data *********/
void DatSend(uint32 dx)
{
uint8 i;
for (i=0; i<32; i++)
{
if ((dx & 0x80000000) != 0)
{
SDA_HIGH; // SDA=1;
}
else
{
SDA_LOW; // SDA=0;
}
dx <<= 1;
ClkProduce();
}
}
/******* data processing ********************/
void DataDealWithAndSend(uint8 r uint8 g uint8 b)
{
uint32 dx = 0;
dx |= (uint32)0x03 << 30; // The front of the two bits 1 is flag bits
dx |= (uint32)TakeAntiCode(b) << 28;
dx |= (uint32)TakeAntiCode(g) << 26;
dx |= (uint32)TakeAntiCode(r) << 24;
dx |= (uint32)b << 16;
dx |= (uint32)g << 8;
dx |= r;
DatSend(dx);
}
int main(void)
{
SCL_SDA_OUT; //PD0 PD1 OUT
SCL_SDA_HIGH;// PD0 PD1 HIGH
while(1)
{
char ij;
Send32Zero();
for(j=0;j {
DataDealWithAndSend(10000); // display red
}
Send32Zero();
delay_ms(60000); // four delay_ms() about 1s
delay_ms(60000);
delay_ms(60000);
delay_ms(60000);
Send32Zero();
for(j=0;j {
DataDealWithAndSend(00100); // display green
}
Send32Zero();
delay_ms(60000);
delay_ms(60000);
delay_ms(60000);
delay_ms(60000);
Send32Zero();
for(j=0;j {
DataDealWithAndSend(01000); // display blue
}
Send32Zero();
delay_ms(60000);
delay_ms(60000);
delay_ms(60000);
delay_ms(60000);
Send32Zero();
for(j=0;j
- 上一篇:最小二乘法拟合原理及代码实现
- 下一篇:泵站远程监控系统
相关资源
- RGB Coordinates of the Macbeth ColorChecker-已解
- rgb hsv颜色转化识别软件
- RGB565直接转BMP
- 取色器,鼠标放在哪里,就显示哪里
- 基于对话框显示,动态显示jpg.bmp等图
- ROS下同时存储Kinect 深度和RGB图 代码包
- STC15F104E驱动LPD6803芯片的全彩RGB灯带例
- RGB到HSV空间直方图均衡化 opencv
- 颜色恒常性算法
- libyuv.tar.gz
- sRGBColorCheckerBoundary.jpg
- YUV 和 RGB 颜色互转的小工具
- bmp格式图片转为rgb565格式图片
- Bayer图像格式转化为标准RGB格式
- 四通道LVDS转RGB芯片
- rgba8888转yuvsp420
- 树莓派控制RGB LED源代码softPwm
- LT8619C_DataSheet_R1.2.pdf
- ili9488液晶初始化RGB接口
- 用FCM算法实现图像分割(图像源可以
- RGB驱动LED电路图
- HSVRGB屏幕取色
- Linux下QT tcp接收Zedboard发送的RGB888视频
- rgb565_to_bmp
- 字符叠加及YUV420转RGB
- 利用PWM技术控制RGB灯变色和呼吸
- RGB888与RGB565互转工具
- 78种RGB配色方案
- CMYK和RGB转化工具
- rgb转换为luv颜色空间
评论
共有 条评论