[ merid @ 04.03.2008. 00:49 ] @
Pozdrav, Imam sljedeci problem, kao prvo dobio sam seminarski koji se sastoji u programiranju PIC-ova, a to nikad nisam radio, medjutim mene se nista ne pita :( Dakle ev ja cu staviti cio code, inace ovaj code treba da upravlja liftom, nemojte se smijati greskama, ipak mi je prvi put da u ovome radim, jos samo da kazem da mi prilikom pokusaja da Build-am javlja sljedecu gresku: Line/Column Message No Message Text 10:0 11 ';' expected but .2 found 10:0 12 Internal error 10:0 12 Internal error 10:0 12 Internal error 10:0 12 Internal error Samo jos da kazem nakon sto stavim ; mjesto .2 (dakle ;2) dobijem sljedecu poruku u koloni Message Text: Assigning to non-lvalue [] (isto dobijem kada mjesto . stavim ,) Ja mislim da je greska u tome sto ja ne znam kako da pristupim pojedinacnim pinovima (moze biti da nisam pravilno iskoristio ni switch), googlao sam ali stvarno nisam nista nasao u cem bih se snasao, ako ima neko ko moze pomoci molim ga. Ev jos samo da pokazem code (p.s. vjerovatno ce biti jos greskica, ali trenutno mi je ovo primarnoa, medjutim ako neko neku ugleda neka kaze) //Deklaracija int ts,vps; //Funkcija za realizaciju paljenjea doda void dioda(int sprat){ switch (sprat){ case 0:{ PORTD;2=0; PORTD.3=1; PORTC.4=0; PORTC.5=0; PORTD.4=0; PORTD.5=0;}; break; case 1:{ PORTD.2=0; PORTD.3=0; PORTC.4=1; PORTC.5=0; PORTD.4=0; PORTD.5=0;}; break; case 2:{ PORTD.2=0; PORTD.3=0; PORTC.4=0; PORTC.5=1; PORTD.4=0; PORTD.5=0;}; break; case 3:{ PORTD.2=0; PORTD.3=0; PORTC.4=0; PORTC.5=0; PORTD.4=1; PORTD.5=0;}; break; case 4:{ PORTD.2=0; PORTD.3=0; PORTC.4=0; PORTC.5=0; PORTD.4=0; PORTD.5=1;}; break; } } //****************************************************************************** //Funkcija za realizaciju prikazivanja sprata na 7seg display-u void sedmoseg(int sprat){ switch (sprat){ case 0:{ PORTC.0=1; PORTC.1=1; PORTC.2=1; PORTC.3=1; PORTD.0=1; PORTD.1=0;}; break; case 1:{ PORTC.0=0; PORTC.1=1; PORTC.2=0; PORTC.3=0; PORTD.0=0; PORTD.1=0;}; break; case 2:{ PORTC.0=1; PORTC.1=0; PORTC.2=1; PORTC.3=1; PORTD.0=0; PORTD.1=1;}; break; case 3:{ PORTC.0=1; PORTC.1=1; PORTC.2=1; PORTC.3=0; PORTD.0=0; PORTD.1=1;}; break; case 4:{ PORTC.0=0; PORTC.1=1; PORTC.2=0; PORTC.3=0; PORTD.0=1; PORTD.1=1;}; break; } } //****************************************************************************** //Sekvence za step motor void step(int br){ switch (br){ case 0:{ PORTD.7=1; PORTD.6=0; PORTB.0=0; PORTB.1=0;}; break; case 1:{ PORTD.7=0; PORTD.6=1; PORTB.0=0; PORTB.1=0;}; break; case 2:{ PORTD.7=0; PORTD.6=0; PORTB.0=1; PORTB.1=0;}; break; case 3:{ PORTD.7=0; PORTD.6=0; PORTB.0=0; PORTB.1=1;}; break; } } //****************************************************************************** //Glavni program void main(){ TRISA = 0xFF; TRISB = 0x3F; TRISC = 0; TRISD = 0; TRISE = 0; while (PORTB.2!=0){ PORTE.1=1; PORTE.2=0; } PORTE.1=0; PORTE.2=0; ts=0; dioda(0); sedmoseg(0); while (1){ //****************************************************************************** if (PORTA.0==1){ //Poziv na prizemlje vps=0; while (PORTB.3!=0){ PORTE.1=1; PORTE.2=0; } } //****************************************************************************** if (PORTA.1==1){ //Poziv na prvi sprat vps=1; while (PORTB.4!=0){ if (vps<ts){ PORTE.1=0; PORTE.2=1; } else{ PORTE.1=1; PORTE.2=0; } } PORTE.1=0; PORTE.2=0; ts=vps; dioda(ts); sedmoseg(ts); } //****************************************************************************** if (PORTA.2==1){ //Poziv na drugi sprat vps=2; while (PORTB.5!=0){ if (vps<ts){ PORTE.1=0; PORTE.2=1; } else{ PORTE.1=1; PORTE.2=0; } } PORTE.1=0; PORTE.2=0; ts=vps; dioda(ts); sedmoseg(ts); } //****************************************************************************** if (PORTA.1==1){ //Poziv na treci sprat vps=3; while (PORTB.6!=0){ if (vps<ts){ PORTE.1=0; PORTE.2=1; } else{ PORTE.1=1; PORTE.2=0; } } PORTE.1=0; PORTE.2=0; ts=vps; dioda(ts); sedmoseg(ts); } //****************************************************************************** if (PORTA.1==1){ //Poziv na cetvrti sprat vps=4; while (PORTB.7!=0){ PORTE.1=0; PORTE.2=1; } PORTE.1=0; PORTE.2=0; ts=vps; dioda(ts); sedmoseg(ts); } //****************************************************************************** if (PORTB.2=1){ //Alarm PORTE.1=0; // Motor stani PORTE.2=0; // Motor stani PORTD.2=1; // Gori crvena dioda PORTD.3=0; // Gori crvena dioda PORTC.4=0; // Gori crvena dioda PORTC.5=0; // Gori crvena dioda PORTD.4=0; // Gori crvena dioda PORTD.5=0; // Gori crvena dioda PORTC.0=1; // Prikazi A na sedmoseg display-u PORTC.1=1; // Prikazi A na sedmoseg display-u PORTC.2=0; // Prikazi A na sedmoseg display-u PORTC.3=1; // Prikazi A na sedmoseg display-u PORTD.0=1; // Prikazi A na sedmoseg display-u PORTD.1=1; // Prikazi A na sedmoseg display-u } //****************************************************************************** for (i=0,j=0;i<50;i++){ //Otvaranje vrata lifta if (j<=3){ step(j); j++; } else j=0; } //****************************************************************************** for (i=0,j=3;i<50;i++){ //Zatvaranje vrata lifta if (j>=0){ step(j); j--; } else j=3; } //****************************************************************************** } } |