??? 11/02/10 07:35 Read: times Msg Score: -1 -1 Non-Specific question |
#179434 - error |
can anyone help me we this code I have some errors with the {while) commands
#include<reg51.h> #define port P1 #define adc_input P0 #define cont_port P3 #define dataport P2 #define m_sec 10 sbit rs = cont_port^0; sbit rw = cont_port^1; sbit en = cont_port^6; sbit dig_hr1=port^0; sbit dig_min1=port^1; sbit start=port^2; sbit am_pm=port^3; sbit set_button=port^4; sbit alarm=port^7; sbit wr= P3^2; sbit rd= P3^3; sbit intr= P3^4; // define all varibales int hr ,hr1=0,alarm_hr=0; int min,min1=0,alarm_min=0; int sec,sec1=0,dig_am_pm=0,alarm_am_pm1=0; int test_final=0,test_intermediate1[10],test_intermediate2[3]={0,0,0}; int alarmoff=50,alarm2off=121,am_pm1,set; int alarm2,alarm2_hr,alarm2_min,alarm2_am_pm,am_pm2,min2,hr2,alarm_am_pm2; int alarm3,alarm3_hr,alarm3_min,alarm3_am_pm,am_pm3,min3,hr3,alarm_am_pm3; int alarm4,alarm4_hr,alarm4_min,alarm4_am_pm,am_pm4,min4,hr4; int alarmoffset=30,alarm_set; int dig_hr,dig_min,dig_hr2,dig_min2,dig_hr3,dig_min3,dig_hr4; void delay(unsigned int msec) // Time dealy function { int i,j ; for(i=0;i<msec;i++) for(j=0;j<1275;j++); } void lcd_cmd(unsigned char item) //Function to send command to LCD { dataport = item; rs= 0; rw=0; en=1; delay(1); en=0; return; } void lcd_data(unsigned char item) // Function to send data to LCD { dataport = item; rs= 1; rw=0; en=1; delay(1); en=0; return; } void lcd_data_string(unsigned char *str) // Function to send string to LCD { int i=0; while(str[i]!=' ') { lcd_data(str[i]); i++; delay(1); } return; } void lcd_data_int(int time_val) // Function to send number to LCD { int int_amt; int_amt=time_val/10; lcd_data(int_amt+48); int_amt=time_val%10; lcd_data(int_amt+48); } void lcd(unsigned char str1[10]) { lcd_cmd(0x38); lcd_cmd(0x0e); delay(1); lcd_data_string(str1); } void shape() // Function to create the shape of degree { lcd_cmd(64); lcd_data(2); lcd_data(5); lcd_data(2); lcd_data(0); lcd_data(0); lcd_data(0); lcd_data(0); lcd_data(0); } void convert() // Function to convert the data of ADC { int s; s=test_final/100; test_final=test_final%100; lcd_cmd(0xc9); if(s!=0) lcd_data(s+48); else lcd_cmd(0x06); s=test_final/10; test_final=test_final%10; lcd_data(s+48); lcd_data(test_final+48); lcd_data(0); lcd_data('C'); lcd_data(' '); delay(2); } void set_hr1() // Function to set set hours digit of clock { hr1++; if(hr1>11) hr1=0; lcd_cmd(0xc3); lcd_data_int(hr1); lcd_data(':'); } void set_min1() // Function to set set minutes digit of clock { min1++; if(min1>59) min1=0; lcd_cmd(0xc6); lcd_data_int(min1); } void set_alarm_hr1() // Function to set set hours digit of alarm { alarm_hr++; if(alarm_hr>11) alarm_hr=0; lcd_cmd(0xc3); lcd_data_int(alarm_hr); lcd_data(':'); } void set_alarm_min1() // Function to set set minutes digit of clock { alarm_min++; if(alarm_min>59) alarm_min=0; lcd_cmd(0xc6); lcd_data_int(alarm_min); } void alarm_check() // Function to check alarm { if(hr==alarm_hr) { if(min==alarm_min) { alarm=1; alarmoff=0; lcd_cmd(0x8b); lcd_data_string("ALARM"); } } } void alarm2_check() // check alarm 2 { if(hr==alarm2_hr) { if(min==alarm2_min) { if (dig_am_pm==alarm2_am_pm) { alarm2=1; lcd_cmd(0x8b); lcd("ALARM2"); } } } } void alarm3_check() // check alarm 3 { if(hr==alarm3_hr) { if(min==alarm3_min) { if (dig_am_pm==alarm3_am_pm) { alarm2=0; lcd_cmd(0x8b); lcd_data_string(" "); } } } } void alarm4_check() //check alarm4 { if (alarm4==alarm4_hr) { alarm4=1; lcd_cmd(0x8b); lcd_data_string("alarm4"); } } void alarm_off() //alarm off { if(alarmoff==alarmoffset) { alarm=0; lcd_cmd(0x8b); lcd_data_string(" "); } } void temp() // Function to calculate temperature { int i; for(i=0;i<10;i++) { delay(1); rd=1; wr=0; delay(1); wr=1; while(intr==1); rd=0; lcd_cmd(0x88); test_intermediate1[i]=adc_input/10; delay(1); intr=1; } for(i=0;i<10;i++) test_intermediate2[0]=test_intermediate1[i]+test_intermediate2[0]; for(i=0;i<10;i++) { delay(1); rd=1; wr=0; delay(1); wr=1; while(intr==1); rd=0; lcd_cmd(0x88); test_intermediate1[i]=adc_input/10; delay(1); intr=1; } for(i=0;i<10;i++) test_intermediate2[1]=test_intermediate1[i]+test_intermediate2[1]; for(i=0;i<10;i++) { delay(1); rd=1; wr=0; delay(1); wr=1; while(intr==1); rd=0; lcd_cmd(0x88); test_intermediate1[i]=adc_input/10; delay(1); intr=1; } for(i=0;i<10;i++) test_intermediate2[2]=test_intermediate1[i]+test_intermediate2[2]; test_intermediate2[0]=test_intermediate2[0]/3; test_intermediate2[1]=test_intermediate2[1]/3; test_intermediate2[2]=test_intermediate2[2]/3; test_final=test_intermediate2[0]+test_intermediate2[1]+test_intermediate2[2]; shape(); convert(); } void set_up()// set alarms and time { delay(200); lcd_cmd(0x01); lcd_cmd(0x83); lcd_data_string("set feeder"); lcd_cmd(0xc3); lcd_data_int(hr1); lcd_data(':'); lcd_data_int(min1); While(set==1); { delay (10); if(dig_hr1==0) set_alarm_hr1(); if (dig_min1==0) set_alarm_min1(); if(am_pm1==0) { lcd_cmd(0xcb); lcd_data_string("am"); alarm_am_pm1=0; } if (am_pm1==1) { lcd_cmd(0xcb); lcd_data_string("pm"); alarm_am_pm1=1; } if(set_button==1) set++; } //alarm 2 start delay(200); lcd_cmd(0x01); lcd_cmd(0x83); lcd_data_string("set light on"); lcd_cmd(0xc3); lcd_data_int(hr2); lcd_data(':'); lcd_data_int(min2); While (set==2); { delay (10); if(dig_hr2==0) set_alarm_hr2(); if (dig_min2==0) set_alarm_min2(); if(am_pm2==0) { lcd_cmd(0xcb); lcd_data_string("am"); alarm_am_pm2=0; } if (am_pm2==1) { lcd_cmd(0xcb); lcd_data_string("pm"); alarm_am_pm2=1; } if(set_button==1) set++; } // start alarm 3 delay(200); lcd_cmd(0x01); lcd_cmd(0x83); lcd_data_string("set light off"); lcd_cmd(0xc3); lcd_data_int(hr3); lcd_data(':'); lcd_data_int(min3); While (set==3); { delay (10); if(dig_hr3==0) set_alarm_hr3(); if (dig_min3==0) set_alarm_min3(); if(am_pm3==0) { lcd_cmd(0xcb); lcd_data_string("am"); alarm_am_pm3=0; } if (am_pm3==1) { lcd_cmd(0xcb); lcd_data_string("pm"); alarm_am_pm3=1; } if(set_button==1) set++; } // start alarm 4 delay(200); lcd_cmd(0x01); lcd_cmd(0x83); lcd_data_string("Tank Refill"); lcd_cmd(0xc3); lcd_data_int(hr4); lcd_data(' '); lcd_data_string(" "); While (set==4); { delay (10); if(dig_hr4==0) { set_alarm_hr4(); lcd_cmd(0xcb); lcd_data_string(" "); } if(set_button==1) set++; } //set Time 5 delay(200); lcd_cmd(0x01); lcd_cmd(0x83); lcd_data_string("set time"); lcd_cmd(0xc3); lcd_data_int(hr); lcd_data(':'); lcd_data_int(min); While (set==5); { delay (10); if(dig_hr==0) set_alarm_hr(); if (dig_min==0) set_alarm_min(); if(am_pm==0) { lcd_cmd(0xcb); lcd_data_string("am"); dig_am_pm=0; } if (am_pm==1) { lcd_cmd(0xcb); lcd_data_string("pm"); dig_am_pm=1; } if(set_button==1) set=0; } } // need to check all variablles for consistancy void main() { int k; start=1; dig_hr1=1; dig_min1=1; alarm_set=0; alarm=0; lcd_cmd(0x01); while(1) { for(k=0;k<2;k++) { for(hr=hr1;hr<12;hr++) { alarm2++; alarm3++; for(min=min1;min<60;min++) { alarmoff++; alarm2off++; for(sec=0;sec<60;sec++) { lcd_cmd(0x81); delay(1); lcd_data_int(hr); lcd_data(':'); lcd_data_int(min); lcd_data(':'); lcd_data_int(sec); if(dig_am_pm==0) { lcd("am"); } else { lcd("pm"); } alarm_check(); alarmoff_check(); alarm2_check(); alarm3_check(); alarm4_check(); if(set_button==1) { set=1 set_up() } lcd_cmd(0xc3); delay(2); lcd_data_string("TEMP:"); temp(); lcd_data_string(" "); } } } min1=0; } if(dig_am_pm==0) dig_am_pm=1; else dig_am_pm=0; hr1=0; } } |
Topic | Author | Date |
error | 01/01/70 00:00 | |
What errors, exactly? | 01/01/70 00:00 | |
Definitely borked while statements there | 01/01/70 00:00 | |
It's been said before | 01/01/70 00:00 | |
Bad While | 01/01/70 00:00 |