⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12ul_demo.c

📁 基于AVR单片机的12段LED管灯控制程序
💻 C
字号:
/****************************************************************************
//------------------ All color 12ul demo -----------------------
//FileName     : 12ul_Demo.c
//Function     : 12 u_lamp All color(RGB) play demo
//Created by   : Zhoushengzhi
//Created date : 13/4/2007
//MCU          : ATmega8
//frequency    : 8MHz
//Tool         : GCC_AVR20050124
//CopyRight (c)  2006 Zhoushengzhi
//E-mail       : zhounanxu@163.com
****************************************************************************/
#include <stdio.h>
#include <string.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avrx/avrx.h>

#include "Hardware.h"
#include "12ul_Demo.h"

//----------------------------------------------------------------				
AVRX_SIGINT(SIG_OVERFLOW0) 
{
	IntProlog();        //switch to kernel stack/context.
    TCNT0 = TCNT0_INIT; //Reset timer overflow count.
	AvrXTimerHandler(); //Call Time queue manager
	Epilog();           //Return to tasks.
}

AVRX_GCC_TASKDEF(LedPlay, 10, 5)
{
    //AvrXDelay(&delay, 1);//1ms delay, Delay_MaxVal = 6.5s.
	BYTE bi;
	
    while(1)
        {
		Play_24ColorStaAsh(250);
		for(bi = 0; bi < 15; bi++)
		    Play_24ColorRunAsh_L_to_R(PLAY_24ASHSPEED);
		Play_Jump_All(PLAY_DELAY1MS);
		Play_CloseOpenMoveUpt(PLAY_MOVESPEED);
		for(bi = 0; bi < 2; bi++)
            Play_Gradual(PLAY_GRADSPEED);
        }
}

int main(void)
{
    AvrXSetKernelStack(0);//Set Avrx stack to "0",or,if NULL then to current stack.

	TCCR0 = T0MC8_CK256; 	// Set up Timer0 for CLK/256 rate
	TCNT0 = TCNT0_INIT;
	TIMSK |= _BV(TOIE0);  	// Enable Timer0 overflow interrupt

    DDRD |= _BV(PD4) | _BV(PD3) | _BV(PD1) |_BV(PD0);
    Set_Oe();
	
	AvrXRunTask(TCB(LedPlay));
	
	Epilog();                   // Switch from AvrX Stack to first task
    
	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -