• Main Page
  • Related Pages
  • Files
  • File List
  • Globals

UartDisplay.c

Go to the documentation of this file.
00001 
00027 #include <avr/io.h>
00028 #include <avr/interrupt.h>
00029 #include <avr/pgmspace.h>
00030 #include <util/delay.h>
00031 #include <stdlib.h>
00032 
00033 
00034 #include "lcd.h"
00035 #include "uart.h"
00036 #include "button.h"
00037 #include "buzzer.h"
00038 
00039 uint8_t cnt=0;
00040 uint8_t cnt2=0;
00041 extern uint8_t scroll;
00042 
00043 #define DISPLAY_bp 4
00044 #define BACKLIGHT_bp 5
00045  
00046 
00047 
00053 inline void timer2_init(void) {
00054         //Timer zum scrollen
00055         TCCR2 = (1<<CS22) | (1<<CS21);                                  //Clock Select. Prescaler set to 256 (28.8 kHz)
00056         TIMSK |= (1<<TOIE2);                                                    //Timer2 Overflow Interrput Enable
00057 }
00058 
00059 
00060 int main(void) {
00061         
00062         uint8_t data;
00063         
00064         uart_init();
00065         button_init();
00066         buzzer_init();
00067         
00068         timer2_init();
00069         
00070         // Switch Display and Backlight on
00071         DDRB |= (1<<DISPLAY_bp) ;
00072         PORTB &= ~(1<<DISPLAY_bp);
00073         DDRB |= (1<<BACKLIGHT_bp);
00074         PORTB &= ~(1<<BACKLIGHT_bp);
00075         
00076         sei();                                                                                          // Global Interrput Enable                                                                              
00077         
00078         lcd_init();                                                                             // Initialize LCD driver IC
00079         print_buffer();                                                                         // Write buffer to display
00080         
00081         
00082         while(1) {
00083                 if(uart_getbyte(&data)) {                                               //If there is received data 
00084                         lcd_putchar(data, NULL);                                        // 
00085                 }
00086                 
00087                 //~10Hz
00088                 if(scroll && cnt>40) {
00089                         cnt=0;
00090                         lcd_scroll();
00091                 }
00092                 
00093                 //~50Hz
00094                 if(cnt2>1) {
00095                         cnt2=0;
00096                         button_process();
00097                         
00098                 } 
00099                 
00100         }
00101 }
00102 
00103 
00104 //112.5Hz
00105 ISR(TIMER2_OVF_vect ){
00106         cnt++;
00107         cnt2++;
00108 }
00109 
00110 

Generated on Thu Feb 23 2012 13:31:37 for UartDisplay by  doxygen 1.7.2