Hier mein Code
Code:
#include <mega128.h>
// LCD functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
#define ADC_VREF_TYPE 0x20
void lcd(unsigned char uclcd);
unsigned char read_adc(unsigned char adc_input);
unsigned char ucLDR;
void main(void)
{
PORTF=0x00;
DDRF=0x00;
// ADC init
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x87;
// LCD init
lcd_init(24);
while (1)
{
ucLDR=read_adc(3);
lcd(ucLDR);
};
}
void lcd(unsigned char uclcd)
{
unsigned char ucHundert,ucZehn,ucEiner;
ucHundert=uclcd/100;
ucZehn=((uclcd-(ucHundert*100))/10);
ucEiner=(uclcd-(ucHundert*100)-(ucZehn*10));
ucHundert+=0x30;
ucZehn+=0x30;
ucEiner+=0x30;
lcd_gotoxy(1,1);
lcd_putchar(ucHundert);
lcd_putchar(ucZehn);
lcd_putchar(ucEiner);
}
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
[/code]
Lesezeichen