All pastes #213076 Raw Edit

Anonymous

public c v1 · immutable
#213076 ·published 2006-10-21 05:46 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 offvoid SwitchToCharging(void);void SwitchToLoad(void);//----- Begin Code ------------------------------------------------------------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    } }void SwitchToCharging(void) {   ClearBit(2, PORTC) ;   return;}void SwitchToLoad(void) {   SetBit(2, PORTC) ;  return;}