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

📄 ledfeedback.c

📁 his project was built and tested with WinAVR-20060125. Make sure the MCU target define in the Mak
💻 C
字号:
/* Interface an Atmel AVR MCU with Freescales MC1319x ZigBee chip */

/*
 * Author: johan@anteeo.se
 *
 * Copyright (C) 2005 by Anteeo Systems HB, Sweden
 *
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 * 
 * Created:     Fri May 13 22:46:58 2005, johan@anteeo.se
 *
 */

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

#include <ledfeedback.h>

// Stuff for LED event feedback
#define LED_DELAY 10000
#define LED_PORT PORTC
#define LED_PORT_DDR DDRC
const char PortBV[NUMBER_OF_LEDS]={_BV(PINC3), _BV(PINC0), _BV(PINC1)};
unsigned short lLEDDelay[NUMBER_OF_LEDS]={0,0,0};

void LED_Init(void)
{
	// Set LED pin to out
	for(unsigned i=0;i<NUMBER_OF_LEDS;--i)
		LED_PORT_DDR|=PortBV[i];
}

void fireLED(unsigned char LED)
{
	lLEDDelay[LED]=LED_DELAY;
}

// Step led counters
void tickLEDs(void)
{
	for(unsigned char i=0; i<NUMBER_OF_LEDS; ++i)
	{
		if(lLEDDelay[i]==LED_DELAY)
			LED_PORT|= PortBV[i];
		if(lLEDDelay[i]==1)
			LED_PORT&= ~PortBV[i];;
		if(lLEDDelay[i]>0)
			--lLEDDelay[i];
	}
}
// Busy wait blink
void blinkLED(unsigned char LED)
{
	// set output to 5V, LED on 
	LED_PORT|= PortBV[LED];
	_delay_ms(800);
	_delay_ms(800);
	// led off, pin=0 
	LED_PORT&= ~PortBV[LED];;
	_delay_ms(800);
	_delay_ms(800);
}

⌨️ 快捷键说明

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