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;
}
//******************************************************************************
}
}
sve se vrti u krug