All pastes #213069 Raw Edit

Stuff

public c v1 · immutable
#213069 ·published 2006-10-21 05:39 UTC
rendered paste body
//*****************************************************************************// File Name	: a2dtest.c// // Title		: example usage of some avr library functions// Revision		: 1.0// Notes		:	// Target MCU	: Atmel AVR series// Editor Tabs	: 4// // Revision History:// When			Who			Description of change// -----------	-----------	-----------------------// 20-Oct-2002	pstang		Created the program//***************************************************************************** //----- Include Files ---------------------------------------------------------#include <avr/io.h>		// include I/O definitions (port names, pin names, etc)#include <avr/signal.h>	// include "signal" names (interrupt names)#include <avr/interrupt.h>	// include interrupt support#include "global.h"		// include our global settings#include "uart.h"		// include uart function library#include "rprintf.h"	// include printf function library#include "timer.h"		// include timer function library (timing, PWM, etc)#include "a2d.h"		// include A/D converter function library#include "vt100.h"		// include VT100 terminal support#define NOS 500          // Define number of milliseconds between collects#define NOC 30              // Define number of collects (1-512) between reset#define SetBit(BIT, PORT)        PORT |= (1<<BIT)#define ClearBit(BIT, PORT)      PORT &= ~(1<<BIT)#define IsHigh(BIT, PORT)       (PORT & (1<<BIT)) != 0#define IsLow(BIT, PORT)        (PORT & (1<<BIT)) == 0//global variablesunsigned int volts;       // Current value of Battery Voltsunsigned int shuntvolts;  // Current value of Shunt Voltsunsigned int pulse;       // Pulses per Secondunsigned int windpulse;   // Windspeed Pulses per secondunsigned int mode;        // Dummy load on or off//----- Begin Code ------------------------------------------------------------void SwitchToCharging(void) { ClearBit(PORTC, 2) ; return}void SwitchToLoad(void) { SetBit(PORTC, 2) ; return}int main(void){ 	uartInit();	uartSetBaudRate(4800);		// set UART speed to 9600 baud	rprintfInit(uartSendByte);	timerInit();	a2dInit();	vt100ClearScreen();	//vt100SetCursorPos(1,1);	//rprintf("Hi i am alive \r\n");		DDRC = 0x00;	PORTC = 0x00;	a2dSetPrescaler(ADC_PRESCALE_DIV64);	a2dSetReference(ADC_REFERENCE_256V);		// use a2dConvert8bit(channel#) to get an 8bit a2d reading	// use a2dConvert10bit(channel#) to get a 10bit a2d reading	while (1)                 // do this until finished or broken	{        volts = a2dConvert10bit(0);    // Get ADC Value        shuntvolts = a2dConvert10bit(1);    // Get ADC Value        pulse = a2dConvert10bit(2); // Get ADC Value        windpulse = a2dConvert10bit(3);// Get ADC Value		if (volts > 580) { mode = 0; SwitchToLoad());		if (volts <540) { mode = 1;  SwitchToCharging());				 vt100SetCursorPos(1,1);		rprintf("[<V>%d</V><A>%d</A><R>%d</R><S>%d</S><M>0<M>]\r\n",volts,shuntvolts,pulse,windpulse);        timerPause(NOS);      // pause for interval between checking routine    } }