teomantsn | | Tarih: 28.02.2008, 18:38 Mesaj konusu: 16f877 kontrollü brobot için yardım | |
| projemde 9 redüktörlü dc motoru kontrol ediyorum kablosuz kamera ve parmağa sahiğ bir robot kol mevcut haberleşmesi rf ve vb ile yazılmış ara yüzden sağlanıyor(rs 232 ile) 16f877 pic kullandım hem bacak sayısı hemde hesrin komutunu kullanabilmek için fakat switch case yapsı ile ilgil sorun cıkıyor. pic basic pro codunu derledikten sonra isiste kullanınca pic hiç bir tepki vermiyor osiloskopla sinyal takipi yaptıgımda 26 nolu bacaktan ileriye gidemiyorum yani benim picim veriyi okumuyor sizce sorun proteustamıdır yada benim kodlarımda mı bi yanlış var teşekkürler
kod: (sadece 2 motor için deneme amaçlı yazdım)
@ devıce pic16f877 'işlemci 16f877
@ devıce pic16f877, wdt_on 'watch dog timer kapalı
@ devıce pic16f877, pwrt_on 'power on timer açık
@ devıce pic16f877, protect_off 'kod protek kapalı
'----------------------------------------------
ınclude "modedefs.bas"
trısa=%00000000
trısb=%00000000
trısc=%10000000
trısd=%00000000
'---------------değişkenler---------------------
b0 var byte
b01 var byte
'---------------tanımlar------------------------
defıne hser_rcsta 90h
defıne hser_txsta 20h
defıne hser_baud 2400
defıne hser_clroerr 1
'---------------program-------------------------
porta=0
portb=0
portd=0
loop:
hserin [wait ("tt"), b0,b01]
ıf b01="," then
select case b0
case "a"
portb.0=1
portb.1=0
portb.2=1
portb.3=0
case "b"
portb.0=0
portb.1=1
portb.2=0
portb.3=1
case"c"
portb.0=1
portb.1=0
portb.2=0
portb.3=1
case "d"
portb.0=0
portb.1=1
portb.2=1
portb.3=0
end select
else
goto loop
endıf
pause 250
goto loop
end
'-------------------------------------------------------------------------------
-----------------------------------------------------
|
|