PIC Basic Bilen Arkadaşlar, PORTA.0 Sorunu

kardeş kodların tamamını incelemedim ama şu hatayı gördüm altprogramlara goto komutu ile değil gosub komutu ile gideriz
örnek

loop:

if porta.0=1 then gosub kanal_1
if porta.1=1 then gosub kanal_2

goto loop
'ana göngüden sonra alt programlar gelir

kanal_1:
falan filan

return 'bu komut geldiğin yere geri dön demek

kanal_2:
falan filan
return

end


bence sorun bu değil goto komutu ile de gidilebiliyor.
 
Programsal olarak bir sıkıntı görmedim. pic in A.0 bacağını herhangi bir şarta bağlı olmadan set etmeyi denedinizmi? donanımsal bir problem olmasın.
 
programa girmeden once porta.0 ı bi ac kapa ve ledin yanıp sondugunu gör. yanıp sonmuyorsa once bu durumu coz. Mumkunse pic değiştir, çıkış yanmış olabilir
 
Merhaba
Geçmiş zamanlarda hangi forumda olduğunu hatırlamıyorum ama böyle bir soru vardı.Arşivi karıştırdım ama bulamadım.Daha eskilere bakıp yazacağım.Hatırımda kaldığı kadarı ile birinci pin birinci ledi ikinci pin diğer ikinci ledi her iki pine birden basılınca üçüncü ledi yakıyordu.Bulursam mutlaka yazacağım asm'yi yeni öğrenirken beni bayağı uğraştırmıştı.Muhtemelen sizin sorun da iki pini birden aktif etmek problem yaratıyor.
 
evet gosup la alt programlara göndermelisn.
asıl yapmak istediğini mantıksal olarak anlatırsan daha net çözümler verilir
 
switch mi kullanıyorsun buton mu. İnternal pullup ları iptal edince kendin dışarıdan direnc koyuyo musun. Donanımın nedir bilmeden yazılım ile cozmek zor. Ayrıca cok if else kullanma.
 
switch mi kullanıyorsun buton mu. İnternal pullup ları iptal edince kendin dışarıdan direnc koyuyo musun. Donanımın nedir bilmeden yazılım ile cozmek zor. Ayrıca cok if else kullanma.

pullup lar dışarıdan yaptım kendi pullupları iptal ettim, anahtar kullanıyorum enaz if kullanarak nasıl yazabilirim bu kodu? yapmak istediğim; iki ayrı kanal var ve her kanalın 3 ayrı girişi var ve ortak 3 çıkış var... bir anahtar ile kanal seçiyorum ve bu seçili kanal içerisinde
1nci girişten 1 verdiğimde;1nci ortak çıkış aktif,
1nci ve 2nci girişlere 1 verdiğimde; 1nci ve 2nci ortak çıkışlar aktif,
1nci giriş, 2nci giriş ve 3ncü girişe 1 verdiğimde; 1nci ortak çıkış, 2nci ortak çıkış ve 3ncü ortak çıkış aktif oluyor diğer kanal içinde aynı şartlar geçerli... eğer 1nci giriş 1 değil ise 2nci giriş 1 olsada çıkış olmayacak, aynı şart 3ncü giriş içinde geçerli yani; 1nci ve 2nci girişler 1 olmadan 3ncü giriş 1 olsa da çıkış olmayacak....
 
programın doğru. goto yada gosub da kullanabilirsin bu programda ikiside aynı işi yapar if lerde =yada == de aynı işi yapar(kısmen);)
@ device yerine @_config kullanmayı dene buda derleyiciyle alakalı bi sorun micrecode st.. yoda@ device problem çıkarabiliyor.
bence devrende problemvar neyle derlediğini yazarsan ve şema da lazım tabiki tekrar inceleriz
 
PROGRAM çalışıyor.1.si sen şu baştaki END komutunu kaldır istersen uygulamada etkileyebilir 2.si portanın 1. pini bozulmuş olabilir 3.sü nie porta.4 ü kullanmadında porta.5i kullandın

VRCON=0 yapmayı unutma
 
Moderatör tarafında düzenlendi:
16f628 için porta.3 giriş çıkış ayarlanmıyor diye biliyorum
bu satırdaki porta.3 ü başka bi kanal ile değiştir ordaki değişimleri pic algılamaz
If PORTA.2=1 AND PORTA.3=1 Then
 

Forum istatistikleri

Konular
128,179
Mesajlar
915,658
Kullanıcılar
449,940
Son üye
yavuzturan

Yeni konular

Geri
Üst