سلام به دوستان گل
امیدوارم ایام به کامتون باشه
من یه برنامه به زبان c برای میکرو نوشتم و میآخوام یه مقداری رو از ادک بگیرم و به /lcd بفرستم، مشکله اصلیم دقیقا توی حلق وهیل اتفاق میافته ، مقدار خونده شده رو توی متغیره res میریزم بد تبدیلش میآکنم به float ، موقعی که میآخوام از سپرینتف استفاده کنم تا بریزمش توی یه متغیره دیگه به اسم str و تبدیلش کنم به کرکترهی مراتب برای ارسال به lcd به مشکل بر میخورم و چیزی داخل str قرار نمیآگیره
لطفا منو راهنمایی کنید
خیلیآ ممنون
امیدوارم ایام به کامتون باشه
من یه برنامه به زبان c برای میکرو نوشتم و میآخوام یه مقداری رو از ادک بگیرم و به /lcd بفرستم، مشکله اصلیم دقیقا توی حلق وهیل اتفاق میافته ، مقدار خونده شده رو توی متغیره res میریزم بد تبدیلش میآکنم به float ، موقعی که میآخوام از سپرینتف استفاده کنم تا بریزمش توی یه متغیره دیگه به اسم str و تبدیلش کنم به کرکترهی مراتب برای ارسال به lcd به مشکل بر میخورم و چیزی داخل str قرار نمیآگیره
لطفا منو راهنمایی کنید
خیلیآ ممنون
#include <mega32.h>
#include <delay.h>
#include <math.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0X20
#include <lcd.h>
#asm
.equ __lcd_port=0x15;
#endasm
union ctoi
{
unsigned char ch;
unsigned int intg;
}result;
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
ADCSRA|=0X40;
while ((ADCSRA&0X10)==0);
ADCSRA|=0X10;
return ADCH;
}
void main(void)
{
char str[16];
float flt=0;
int res;
UCSRA=0X00;
UCSRB=0X08;
UCSRC=0X86;
UBRRH=0X00;
UBRRL=0X33;
ADMUX=ADC_VREF_TYPE;
ADCSRA=0X86;
lcd_init(16);
ADCSRA=0XFE;
while (1)
{
res=read_adc(0);
flt=(float)res/51;
sprintf(str,"ch:%fV",flt);
printf("\n\r%s",str);
delay_ms(10);
lcd_clear();
lcd_puts(str);
};
#include <delay.h>
#include <math.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0X20
#include <lcd.h>
#asm
.equ __lcd_port=0x15;
#endasm
union ctoi
{
unsigned char ch;
unsigned int intg;
}result;
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
ADCSRA|=0X40;
while ((ADCSRA&0X10)==0);
ADCSRA|=0X10;
return ADCH;
}
void main(void)
{
char str[16];
float flt=0;
int res;
UCSRA=0X00;
UCSRB=0X08;
UCSRC=0X86;
UBRRH=0X00;
UBRRL=0X33;
ADMUX=ADC_VREF_TYPE;
ADCSRA=0X86;
lcd_init(16);
ADCSRA=0XFE;
while (1)
{
res=read_adc(0);
flt=(float)res/51;
sprintf(str,"ch:%fV",flt);
printf("\n\r%s",str);
delay_ms(10);
lcd_clear();
lcd_puts(str);
};
دیدگاه