标题: bascom avr版WS2812渐变流水的灯 [打印本页]

作者: taotie    时间: 2021-1-19 13:27
标题: bascom avr版WS2812渐变流水的灯
本帖最后由 taotie 于 2021-1-19 13:31 编辑


rem Main.bas file generated by New Project wizard
rem
rem Created:   周一 1月 18 2021
rem Processor: ATmega8
rem Compiler:  BASCOM-AVR

rem Write your code here

$regfile = "m8def.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 32
$framesize = 32

'-------------------------------------------------------------点亮彩带长度:
const N_LED =64       '阵列中LED的数量(自定义)
dim n as word                        '计数器

'颜色
dim g(N_LED) as word                 '绿色部分
dim r(N_LED) as word                 '红色部分
dim b(N_LED) as word                '蓝色部分

'-----------------------------------------------------------------配置:
Config PinB.2 = Output             '新像素:数据输入

'------------------------------------------------------生成LED阵列RESET:
reset portB.2             'T_RST = Lo =  RESET = 10000 ns
waitus 10

'--------------------------------------------------------------------起始值:
'颜色的起始值可能对效果起决定性作用(可以根据需要更改)
for n = 1 to N_LED
  g(n) = 2*n
  b(n) = 255- G(n)
  r(n) = 3 * G(n)
next n

'-----------------------------------------------------------------主循环:
do

   '############################################################################
  ' 这是使用任何算法来执行
  '  更改LED的颜色并更改速度:

   waitms 25
           '改变速度

for n = 1 to N_LED      '更改所有LED的颜色
      g(n) =  g(n) +1
      r(n) = r(n)+ 3
     b(n) = b(n)+ 5
  next n

   '############################################################################

   '---------------------------------------------------创建LED阵列重置:
reset portB.2          'T_RST = Lo =  RESET = 10000 ns
  waitus 10
   '-----------------------用新颜色描述整个LED阵列:
   For n = 1 to N_LED
$include "../ws28_4.BAS"               '将每个LED的绿色、红色和蓝色字节分离并输出到24位数据流中:
   next n
   '----------------------------------------------------------------------------
Loop
End

工程文件用Proteus 8 .9打开
ws2812.zip (23.69 KB, 下载次数: 24)








欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1