/* * LCD.c * * Created: 05.05.2015 08:56:59 * Author: Carmen Mähr & Mladen Blaskic */ #define F_CPU 16000000UL //#include //#include #include //1,07mv, wegen interner Spannung von 1,1V wird das LSB ausgerechnett 1,1/2^10 (8Bit) // 0V|__|__|__|__| 2,56V jeder schritt ist 2,5mv wer für späterre berechnungen. #include #include "LCD_Routines.h" #include int Haupt_zaeler; int Zealer1; int Zealer2; int Zealer3; int Zealer4; float TEMP; int TEMP_1; int TEMP_100m; int TEMP_10m; int TEMP_1m; #define LSB 4.882813 //******************************************************************************************************************************* //INITIALISIERUNG //Bestimmung der internen E in- und Ausgänge //******************************************************************************************************************************* void adc_init(void) { ADMUX |= (1< damit es auf dem LCD display richtig angezeigt wird lcd_setcursor( 3, 1); //wo der wert ausgegeben werden soll lcd_data(TEMP_100m +0x30 ); //TEMP_100m wird ausgegeben +0x30-> damit es auf dem LCD display richtig angezeigt wird lcd_setcursor( 4, 1); //wo der wert ausgegeben werden soll lcd_data(TEMP_10m + 0x30); //TEMP_10m wird ausgegeben +0x30-> damit es auf dem LCD display richtig angezeigt wird lcd_setcursor( 5, 1); //wo der wert ausgegeben werden soll lcd_data(TEMP_1m + 0x30); //TEMP_1m wird ausgegeben +0x30-> damit es auf dem _delay_ms(2000); } } void Anfangstext_mit_bewegung(void) { /*Man muss zuerst das Strobe auf 1 setzen weil der Strobe erst bei einem pegel von 1 auf 0 durchschaltet. wenn man den Stobe auf 1 gesetzt hatt sollte man anschliesend die Data definieren welcher ausgang geshclten werden soll dan sezt man den Stobe auf 0 und der schaltet den gewünschten durchgang durch!*/ //S0 PORTD |= (1< Ausgang DDRD &=~ ((1<<2) | (1<<3)); //1er und 2er interrupt als eingang dekladieren PORTD |= ((1<<2) | (1<<3)); //PULL UP WIEDERSTAND SETZEN DDRC &=~ ((1<<0) | (1<<1)); //AD0-AD1 auf Eingang setzen DDRB=0xFF; //gesamter Port B auf ausgang setzen Haupt_zaeler=0; //zähler als 0 dekladieren while(1) { Anfangstext_mit_bewegung(); // unterprogramm wird aufgerufen /*while(Haupt_zaeler <=100) { Haupt_zaeler++; _delay_us(5); } if (Haupt_zaeler>=100) { Haupt_zaeler=0; _delay_us(1); }*/ } return 0; }