Hello, OnlineGDB Q&A section lets you put your programming query to fellow community users. Asking a solution for whole assignment is strictly not allowed. You may ask for help where you are stuck. Try to add as much information as possible so that fellow users can know about your problem statement easily.

Need help with a project. Could you do it better?

+11 votes
asked May 9, 2020 by carlos287 (250 points)
In a 4 digit 7 segment display, I am trying to show the temperature with the help of a little thermistor. I haven't take classes yet, but still studied and watched a lot of examples... this is not working. I´m bad and also decided to have this working. Appreciate a hint or comment. :) PIC18F2520.

#device adc=10
#use fast_io(b)
float a;
float x;
#int_termo
void termo(){
setup_ADC_ports(sAN4);
setup_ADC(ADC_CLOCK_DIV_2);
entrada = 0x00;            //port_b//0xF8//
while(1) {
set_adc_channel(0);
a=read_adc();
x=log(a/41)*19;
}}
#int_display
void display() {
if(x<0) {
output_c(0xBF);
output_high(pin_b5);
delay_ms(5);
output_low(pin_b5);
}}
void main() {
enable_interrupts(int_termo);
enable_interrupts(int_display);
ext_int_edge(L_to_H);
delay_ms(300);
enable_interrupts(global);
int z;
int16 addr1, addr2;       
addr1=0x200;
write_eeprom(addr1++, 0xc0);
write_eeprom(addr1++, 0xF9);
write_eeprom(addr1++, 0xA4);
write_eeprom(addr1++, 0xB0);
write_eeprom(addr1++, 0x99);
write_eeprom(addr1++, 0x92);
write_eeprom(addr1++, 0x82);
write_eeprom(addr1++, 0xF8);
write_eeprom(addr1++, 0x80);
write_eeprom(addr1++, 0x90);
addr2=0x200;
set_tris_b(0x0f);
while(true){
setup_timer_1(T1_internal|t1_div_by_2);
z=x/10;
addr1=addr2+z;
z=read_eeprom(addr1);
output_c(z);
output_high(pin_b6);
delay_ms(5)
output_low(pin_b6);
z=x%10;
addr1=addr2+z;
z=read_eeprom(addr1);
output_c(z);
output_high(pin_b7);
delay_ms(5);
output_low(pin_b7);
}}

1 Answer

+1 vote
answered Feb 8 by Shahriyor Yuldashev (690 points)
Yes, I can do it better. But, it is easy, you can. Try!
Welcome to OnlineGDB Q&A, where you can ask questions related to programming and OnlineGDB IDE and and receive answers from other members of the community.
...