All pastes #214310 Raw Edit

Miscellany

public c v1 · immutable
#214310 ·published 2006-10-21 23:30 UTC
rendered paste body
//*****************************************************************************// File Name    : a2dtest.c// // Title                : Windlogger// Revision          : 1.2// Revision History:// When   Who                  Description of change// -----------  -----------       -----------------------// 20-Oct-2002  pstang        Created the program// Oct - 2006 RifRaf changes stuff//***************************************************************************** //----- 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#include "extint.h"	           // include external interrupt library#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 Volts (AMPS)unsigned int mode;        // Dummy load on or offvolatile u16 Int0Count;volatile u16 Int1Count;u16 rpm;                   // AC Volts IN frequency per 3 secondsu16 windpulse;             // Windspeed Pulses per 3 seconds// functions void SwitchToCharging(void);void SwitchToLoad(void);void rpmSetup(void);void myInt0Handler(void);void myInt1Handler(void); //----- Begin Code ------------------------------------------------------------ int main(void){        uartInit();        uartSetBaudRate(4800);    // set UART speed to 9600 baud        rprintfInit(uartSendByte);        timerInit();        a2dInit();         vt100ClearScreen();		//rprintf("hello");                    DDRC = 0x00;        PORTC = 0x00;         a2dSetPrescaler(ADC_PRESCALE_DIV64);        a2dSetReference(ADC_REFERENCE_AVCC);		rpmSetup();		SwitchToCharging(); mode = 1;                 while (1)                 // do this until finished or broken        {        volts      = a2dConvert10bit(0);    // Get ADC Value        shuntvolts = a2dConvert10bit(1);    // Get ADC Value		Int0Count = 0;          // reset interrupt counters		Int1Count = 0;          // reset interrupt counters		timerPause(3000);       // wait 3 seconds		rpm       = Int0Count;  // get counter values		windpulse = Int1Count;  // get counter values		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>%d<M>]\r\n",volts,shuntvolts,rpm,windpulse,mode);        } } void rpmSetup(void){	extintInit();	extintConfigure(EXTINT0, EXTINT_EDGE_RISING);	extintConfigure(EXTINT1, EXTINT_EDGE_RISING);	extintAttach(EXTINT0, myInt0Handler);	extintAttach(EXTINT1, myInt1Handler);	sbi(GIMSK, INT0);	sbi(GIMSK, INT1);}void myInt0Handler(void){	Int0Count++;}void myInt1Handler(void){	Int1Count++;}void SwitchToCharging(void) {   ClearBit(0, PORTB) ;   return;} void SwitchToLoad(void) {   SetBit(0, PORTB) ;  return;}