?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{BLAME START}

library

?curdirlinks? -

Blame information for rev 6

Line No. Rev Author Line
1 6 kaklik /*! \file avrcore.c \brief AVR-Core Board Driver Functions. */
2 //*****************************************************************************
3 //
4 // File Name : 'avrcore.c'
5 // Title : AVR-Core Board Driver Functions
6 // Author : Pascal Stang - Copyright (C) 2004
7 // Created : 2004.10.1
8 // Revised : 2004.10.1
9 // Version : 0.1
10 // Target MCU : Atmel AVR series
11 // Editor Tabs : 4
12 //
13 // This code is distributed under the GNU Public License
14 // which can be found at http://www.gnu.org/licenses/gpl.txt
15 //
16 //*****************************************************************************
17  
18 //----- Include Files ---------------------------------------------------------
19 #include <avr/io.h> // include I/O definitions (port names, pin names, etc)
20 #include <avr/interrupt.h> // include interrupt support
21  
22 #include "global.h" // include our global settings
23 #include "avrcore.h"
24  
25 // globals
26 u08 AvrcoreLatch;
27  
28 // functions
29 void avrcoreInit(void)
30 {
31 // initialize ports to input with pullup
32 // (this is done to avoid contentions and input-pin oscillation)
33 outb(DDRA, 0x00);
34 outb(DDRB, 0x00);
35 outb(DDRC, 0x00);
36 outb(DDRD, 0x00);
37 outb(DDRE, 0x00);
38 outb(DDRF, 0x00);
39 outb(PORTA, 0xFF);
40 outb(PORTB, 0xFF);
41 outb(PORTC, 0xFF);
42 outb(PORTD, 0xFF);
43 outb(PORTE, 0xFF);
44 outb(PORTF, 0xFF);
45 // turn on RAM interface
46 sbi(MCUCR, SRE);
47 // initialize RAM page
48 avrcoreSetRamPage(0);
49 // initialize LEDs
50 avrcoreSetLeds(0);
51 // set serial power to on by default
52 avrcoreSetSerialPortPower(1);
53 }
54  
55 void avrcoreSetRamPage(u08 page)
56 {
57 // update latch state
58 AvrcoreLatch &= ~AVRCORELATCH_ADDRMASK;
59 AvrcoreLatch |= page & AVRCORELATCH_ADDRMASK;
60 // write new latch state to latch
61 AVRCORELATCH = AvrcoreLatch;
62 }
63  
64 void avrcoreSetLeds(u08 leds)
65 {
66 // NOTE: LEDs are negative-logic (active-low)
67 // update latch state
68 AvrcoreLatch |= AVRCORELATCH_LEDMASK;
69 AvrcoreLatch &= ~(leds<<4);
70 // write new latch state to latch
71 AVRCORELATCH = AvrcoreLatch;
72 }
73  
74 void avrcoreSetLedsOn(u08 leds)
75 {
76 // NOTE: LEDs are negative-logic (active-low)
77 // update latch state to turn on inidicated leds
78 AvrcoreLatch &= ~(leds<<4);
79 // write new latch state to latch
80 AVRCORELATCH = AvrcoreLatch;
81 }
82  
83 void avrcoreSetLedsOff(u08 leds)
84 {
85 // NOTE: LEDs are negative-logic (active-low)
86 // update latch state to turn off inidicated leds
87 AvrcoreLatch |= (leds<<4);
88 // write new latch state to latch
89 AVRCORELATCH = AvrcoreLatch;
90 }
91  
92 void avrcoreSetSerialPortPower(u08 on)
93 {
94 // this function simply manipulates LED3/power control
95 if(on)
96 AvrcoreLatch &= ~(0x80);
97 else
98 AvrcoreLatch |= (0x80);
99 // write new latch state to latch
100 AVRCORELATCH = AvrcoreLatch;
101 }
{BLAME END}
{FOOTER START}

Powered by WebSVN v2.8.3