ledfeedback.c

来自「his project was built and tested with Wi」· C语言 代码 · 共 77 行

C
77
字号
/* 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 + =
减小字号Ctrl + -
显示快捷键?