bu kodda hata nerde ?

Başlatan mcguiverali, 26 Ocak 2008, 20:22:27

mcguiverali

TRISA=%00000011
TRISB=%00000000
A VAR BYTE
A2 VAR BYTE
A=0
A2=0
PORTB=0
DONGU:
BUTTON PORTA.0,1,254,0,A,1,LEDON 
BUTTON PORTA.1,1,254,0,A2,1,LEDOFF
GOTO DONGU
LEDON:
PORTB.0=1
GOTO DONGU
LEDOFF:
PORTB.0=0
GOTO DONGU
END


PBP e yeni başladım.. bu kodda led normal değilde kırpışarak yanıyor acaba sorun programlama hatasımı yoksa picdemi bir sorun var.. WDT ve PWRT ile atmam sorunu değiştirmiyor..XT osilatör tipi kullanıyorum..
Düşünmeden öğrenmek beyhude, öğrenmeden düşünmek, tehlikelidir.....

mcguiverali

breadboarda tasıdım fakat sorun devam ediyor picden süpheleniyorum..yorumlarınızı bekliyorum..
Düşünmeden öğrenmek beyhude, öğrenmeden düşünmek, tehlikelidir.....

mustafa_cmbz

BUTTON PORTA.0,1,254,0,A,1,LEDON 
BUTTON PORTA.1,1,254,0,A2,1,LEDOFF
[/color]

şu bölümde ne yapmak istediğini anlamış değilim...

mcguiverali

Alıntı yapılan: "mustafa_cmbz"
BUTTON PORTA.0,1,254,0,A,1,LEDON 
BUTTON PORTA.1,1,254,0,A2,1,LEDOFF
[/color]

şu bölümde ne yapmak istediğini anlamış değilim...

porta nın 0. bitini test et ledon a dallan
porta nın 1. bitini test et ledoff a dallan
Düşünmeden öğrenmek beyhude, öğrenmeden düşünmek, tehlikelidir.....

Gerok

Kullandığın pic i belirtmemişsin eğer 877 kullaniyorsan programın başına
ADCON1=7  yaz
Mum başka bir mumu yakmakla ışığından birşey kaybetmez...

mcguiverali

Alıntı yapılan: "Gerok"Kullandığın pic i belirtmemişsin eğer 877 kullaniyorsan programın başına
ADCON1=7  yaz
yo biliyorum 877 değil 16f84
Düşünmeden öğrenmek beyhude, öğrenmeden düşünmek, tehlikelidir.....

files

bak aşağıdaki gibi kolayca yapabilirsin sorun çıkmaz. fazla dallandırmaya gerek yok. Buton uçlarına pullup bağlamalısın. Buton basılınca toprağa gidiyor ise basık değilken 10k ile 5 volta bağlı durabilir. aşağıdaki kodda buton ne ise led de odur. tam tersini istiyorsan  eşitliği değillemek gerek Değilleme
Alıntı YapPORTA.1=~Seninbutonpin
şeklinde olsa gerek.


output PORTA.1
input seninbutonpin

loop:

   PORTA.1=Seninbutonpin
   Pause 1000

goto loop



buton bırakılana kadar beklemek tavsiye edilir budurumda şöyle yapabilirsin.
output PORTA.1
input seninbutonpin

loop:

   PORTA.1=Seninbutonpin
   while  Seninbutonpin=1
       pause 100
   wend


   PORTA.1=Seninbutonpin
   while  Seninbutonpin=0
       pause 100
   wend

goto loop

mcguiverali

evet haklısınız programcılık geregi dallandırmamak lazım fazla ama ben bi hata göremiyorum bu kodda ve neden kırpıştığını hala anlamaış deilim..teşekkürler yardımlarınınz için
Düşünmeden öğrenmek beyhude, öğrenmeden düşünmek, tehlikelidir.....