[ POČETNIK @ 29.11.2011. 20:09 ] @
Pozdrav.
Imal neko voljan pomoći.S obzirom da sam skoro počeo učit o mikrokontrolerima molio bih vas da proučite ovaj kod nemogu ga kompajlirati u hex,MCS izbacuje grešku.Kod je vezan za komunikaciju dva pic-a sa 12 ledica ,sa stranice
http://320volt.com/pic-basic-p...lari-ile-ornek-uygulamalar/12/
evo kod pa ako se nekom ne spava nek izvoli.Unaprijed se zahvaljujem...


DEFINE OSC 4
TRISA=%00011110
TRISB=%11111111
OPTION_REG.7=0
BILGI VAR BYTE

SYMBOL VERIOUT=PORTA.0

MAIN: BILGI=255
GOSUB PORTA_BAK
IF PORTB<255 THEN
BILGI=PORTB
GOSUB VER
while portb<255:wend
ENDIF

pause 10
GOTO MAIN

VER:
serout2 VERIOUT,813,[REP$AA5,REP$005,REP$FF5]
serout2 VERIOUT,813,["E","T","E",BILGI]
serout2 VERIOUT,813,["E","T","E",BILGI]
serout2 VERIOUT,813,["E","T","E",BILGI]
serout2 VERIOUT,813,["E","T","E",BILGI]
RETURN

PORTA_BAK:
BILGI=PORTA & %00011110
IF BILGI<30 THEN
GOSUB VER
' PAUSE 100
ENDIF
WHILE PORTA<30 : WEND
RETURN
END
[ bogdan.kecman @ 29.11.2011. 20:13 ] @
kod stavi sledeci put u CODE tag (dakle pre koda stavis (o umesto nula) [c0de] a posle koda stavis (o umesto nula) [/c0de] ) da bi se zadrzalo formatiranje ..

sad pitanja
1. koji kompajler (marka, model, verzija)
2. koju tacno gresku (copy/paste greske ovde)

[ POČETNIK @ 29.11.2011. 20:36 ] @
ako se razumijemo

kompajler,MicroCode Studio
greška; GOSUB PORTA.0 BAK ovaj dio koda označi u smeđoj boji

Dole ispod u results piše;
Error line 20;syntax
Error line 31 Bad expression.
[ Genie_1984 @ 29.11.2011. 21:56 ] @
greška u ovoj liniji

serout2 VERIOUT,813,[REP$AA5,REP$005,REP$FF5]

treba da bude

serout2 VERIOUT,813,[REP $AA\5,REP $00\5,REP $FF\5]

Pozdrav

[ ZAS011 @ 30.11.2011. 08:08 ] @
Treba da izgleda ovako kada se lepo stavi izmedju Code tag-ova:

Code:
DEFINE OSC 4
TRISA=%00011110
TRISB=%11111111
OPTION_REG.7=0
BILGI VAR BYTE

SYMBOL VERIOUT = PORTA.0

MAIN: 
BILGI=255
GOSUB PORTA_BAK
IF PORTB < 255 THEN
    BILGI = PORTB
    GOSUB VER
    while portb < 255:wend
ENDIF

pause 10
GOTO MAIN

VER:
serout2 VERIOUT, 813, [REP $AA\5, REP $00\5, REP $FF\5]
serout2 VERIOUT, 813, ["E", "T", "E", BILGI]
serout2 VERIOUT, 813, ["E", "T", "E", BILGI]
serout2 VERIOUT, 813, ["E", "T", "E", BILGI]
serout2 VERIOUT, 813, ["E", "T", "E", BILGI]
RETURN

PORTA_BAK:
BILGI = PORTA & %00011110
IF BILGI < 30 THEN
GOSUB VER
' PAUSE 100
ENDIF
WHILE PORTA<30 : WEND
RETURN
END 


Inace, ovo se lepo kompajlira u okruzenju MCS 3.0.0.5 sa kompajlerom PBP 2.60C

@POCETNIK: ova recenica iznad vazi za tebe.

Jedno je IDE (Integrated Development Environment) a drugo je kompajler. Inace skoro svi snipeti kod Turcina imaju greske.
[ POČETNIK @ 30.11.2011. 18:28 ] @
Hvala puno na pomoći i objašnjenju oko kompajlera, uspio sam kompajlirati uz vašu pomoć ali me muči još,ako ova dva pic-a povežem RF komunikacijom,postojil mogućnost da dođe do nekontrolisanog uključenja ledica odnosno releja koje bih preko ULN kola vezao umjesto led dioda.
Nije mi jasno to kodiranje koje štiti od nekontrolisanog uključenja.
Znači interesuje me dali se koder i dekoder nalaze u samom programu pic-a ili na prijemniku i predajniku.Potrebna mi je daljinska komanda sa četiri kanala tj.četiri releja koja bih mogao kontrolisat na udaljenosti nekih 50m.Ajd ovo sam strpao ovdje da ne otvaram novu temu,Pozdrav najboljoj ekipi...
[ Genie_1984 @ 30.11.2011. 18:42 ] @
Kodiranje? U tvom primeru nema kodiranja,samo jednostavna serijska,asihrona komunikacija....tj na prijemu čeka da primi string "ETE" i u zavisnosti od sledećeg bajta određuje koji izlaz menja stanje.

Mogao bi da dodaš CRC proveru tvom kodu i u slučaju da je CRC provera u redu pošalješ na izlaz u slučaju da nije imaš dve varijante:

1) da ne uradi ništa i čeka sledeću naredbu
2) da javi drugom uC da CRC nije prošla i da pošalje ponovo,u tom slučaju bi ti trebala dvosmerna komunikacija između uC-a

Pozdrav