سلام ؛من در زیر دو تا برنامه می نویسم یکی درست از آب در میاد ودومی با تغییر کوچک ارور میده اشکال برنامه دومی چی میتونه باشه ؟
حال اگر یک تغییر در متغیر برنامه بدم سون سگمنت درست نشان داده نمی شود ؟ چرا و پیغام خطای زیر را می دهد مگر حاصل 5/1024=0.00488 نمی شود !
کد:
#include <mega16.h> #include <delay.h> #define ADC_VREF_TYPE 0x40 char sega[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //ADC unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); delay_us(10); ADCSRA|=0x40; while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } void main(void) { long int a; int b,c,d; PORTB=0x00;DDRB=0xff; PORTC=0x00;DDRC=0x00; PORTD=0x00;DDRD=0xff; // ADC Clock frequency: 125.000 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; while (1) { a=read_adc(0);a=a*4887;a=a/10000; b=a%10; c=a%100; c=c/10; d=a/100; PORTB.1=1; PORTB.4=0; // PIN DP seven segment PORTD=sega[d]; delay_ms(4); PORTB.1=0; PORTB.2=1; PORTB.4=1;//// PIN DP seven segment PORTD=sega[c]; delay_ms(4); PORTB.2=0; PORTB.3=1; PORTD=sega[b]; delay_ms(4); PORTB.3=0; }; }
کد:
Error: C:\Users\E~H\Downloads\Compressed\volt_bascon_and_c\code vision\volt.c(42): operand types 'float' and 'char' are incompatible with the '%' or '%=' operator
کد:
#include <mega16.h> #include <delay.h> #define ADC_VREF_TYPE 0x40 char sega[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //ADC unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); delay_us(10); ADCSRA|=0x40; while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } void main(void) { long int a; int b,c,d; PORTB=0x00;DDRB=0xff; PORTC=0x00;DDRC=0x00; PORTD=0x00;DDRD=0xff; // ADC Clock frequency: 125.000 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; while (1) { a=read_adc(0);a=a*0.00488;a=a*100; b=a%10; c=a%100; c=c/10; d=a/100; PORTB.1=1; PORTB.4=0; // PIN DP seven segment PORTD=sega[d]; delay_ms(4); PORTB.1=0; PORTB.2=1; PORTB.4=1;//// PIN DP seven segment PORTD=sega[c]; delay_ms(4); PORTB.2=0; PORTB.3=1; PORTD=sega[b]; delay_ms(4); PORTB.3=0; }; }
دیدگاه