Changeset - 9b507ed828ba
[Not reviewed]
default
0 0 3
kripperger@CL-SEC241-09.cedarville.edu - 12 years ago 2013-03-21 15:45:36
kripperger@CL-SEC241-09.cedarville.edu
Added watchdog library
3 files changed with 153 insertions and 0 deletions:
0 comments (0 inline, 0 general)
slave/slave/lib/SPIreadme.txt
Show inline comments
 
new file 100644
 
This directory contains a simple AVR spi helper library that should
 
run on most AVR microcontrollers which support SPI.
 
 
The code is further described at:
 
http://www.rocketnumbernine.com/2009/04/26/using-spi-on-an-avr-1/ (basics & ADC)
 
http://www.rocketnumbernine.com/2009/05/12/using-spi-on-an-avr-2/ (RTC)
 
 
Any comments/questions to <andrew@rocketnumbernine.com>
 
 
Make sure viewing this text in a fixed width font for the tables and diagrams
 
 
 
----------------------------------
 
Arduino
 
----------------------------------
 
The Arduino Directory contains all code required to run on the Arduino.
 
Simply copy the Arduino/SPI and Arduino/DS1305 directories to the 
 
"hardware/libraries" directory of your Arduino IDE installation and
 
restart the Arduino IDE. Once restarted there should be
 
"Sketch->Import Library->SPI" and "Sketch->Import Library->DS1305" menu
 
entries which can be used to include the spi header files into your project.
 
"File->Sketchbook->Examples->Library SPI" contains 3 example projects
 
 
 
----------------------------------
 
AVR GCC
 
----------------------------------
 
To use, just copy spi.h and spi.c (and ds1305.c and ds1305.h if using
 
the DS1305 Real Time Clock chip) to your own project and compile.
 
 
Makefile.mf - 'standard' generated make file from AVR GCC
 
Makefile - Makefile "make examples" will make example programs below:
 
 
spi-test-adc.c        MC3201 Analogue to Digital convertor example
 
spi-test-rtc.c        DS1305 - Real-Time-Clock/Alarm example
 
spi-test-masterslave.c        Master/Slave communication example
 
 
 
----------------------------------
 
PINS
 
----------------------------------
 
Following are the AVR pins used in the circuits below
 
 
      ATmegaXXX  Arduino AT90usbXXX
 
MISO    PB4        12       PB3
 
MOSI    PB3        11       PB2
 
SCK     PB5        13       PB1
 
SS      PB2        10       PB0
 
 
INT0    PD2         2       PD0   
 
 
 
----------------------------------
 
MC3201 12-bit ADC Circuit
 
----------------------------------
 
See http://ww1.microchip.com/downloads/en/DeviceDoc/21290D.pdf for full details.
 
 
             +-----------------+
 
             |     MC3201      |
 
        +5V [| Vref        Vdd |] +5V
 
             |                 |
 
Analogue In [| IN+         CLK |] AVR SCK
 
             |                 |
 
     Ground [| IN-        Dout |] AVR MOSI
 
             |                 |
 
     Ground [| Vss         ^CS |] AVR CE
 
             +-----------------+
 
 
 
For testing purposes "Analogue In" can be connected to the middle wire
 
of a potentiometer with one outer wire being connected to +5 and the
 
other to Ground.  A 1uF Capacitor should be placed between the analogue
 
input and ground, and +5V and ground as close to the chip as possible,
 
but in a pinch the circuit will likely work without.
 
 
 
MOSI/SLCK/CE to the relevant pin on the AVR (MISO is not used) - see above.
 
 
----------------------------------
 
DS1305 Real Time Clock Circuit
 
----------------------------------
 
See http://datasheets.maxim-ic.com/en/ds/DS1305.pdf for full details.
 
 
Without a battery the following connections can be used:
 
 
                +-----------------+
 
                |      DS1305     |
 
       Ground  [| Vcc2       Vcc1 |] +5V
 
                |                 |
 
       Ground  [| Vbat        ^PF |] Not Connected
 
                |                 |
 
       Crystal [| X1        Vccif |] +5V
 
                |                 |
 
       Crystal [| X2          SDO |] AVR MISO
 
                |                 |
 
 Not Connected [| N.C.        SDI |] AVR MOSI
 
                |                 |
 
      AVR INT0 [| INT0       SLCK |] AVR SLCK
 
                |                 |
 
 Not Connected [| INT1        CE  |] AVR CE
 
                |                 |
 
        Ground [| GND     SERMODE |] +5V
 
                +-----------------+
 
 
 
MISO/MOSI/SLCK/CE/INT0 to the relevant pin on the AVR - see above.
 
 
 
 
 
slave/slave/lib/watchdog.c
Show inline comments
 
new file 100644
 
/*
 
 * watchdog.c
 
 *
 
 * Created: 3/12/2013 3:58:20 PM
 
 *  Author: kripperger
 
 */ 
 
 
#include <avr/io.h>
 
#include <avr/interrupt.h>
 
#include <avr/wdt.h>
 
 
//initialize watchdog
 
void watchdog_setup(void)
 
{
 
	cli();
 
	wdt_reset();
 
	// Set change enable bit, enable the WDT
 
	WDTCSR = (1<<WDCE)|(1<<WDE);
 
	// Start watchdog, 4 second timeout
 
	WDTCSR = (1<<WDE)|(1<<WDP3)|(1<<WDP0);
 
	sei();
 
}
 
 
// ISR for watchdog timeout. ///////////Not currently used, interrupt is disabled.
 
ISR(WDT_vect)
 
{
 
	
 
}
slave/slave/lib/watchdog.h
Show inline comments
 
new file 100644
 
/*
 
 * watchdog.h
 
 *
 
 * Created: 3/12/2013 3:58:54 PM
 
 *  Author: kripperger
 
 */ 
 
 
 
#ifndef WATCHDOG_H_
 
#define WATCHDOG_H_
 
 
void watchdog_setup(void);
 
 
#endif /* WATCHDOG_H_ */
 
\ No newline at end of file
0 comments (0 inline, 0 general)