PIC BASIC PRO Öğreniyoruz soru cevapları

Başlatan aster, 19 Mayıs 2005, 17:33:33

mihri

slm mcs 2300 ve pbp 246 kullanıyorum yazdığım kodları derlediğimde fatal eror-out of memory diye hata veriyor. oluşan pbp dosyasını masa üstüne atıp yeniden derlediğimde problem yok derliyo ama bir klasörün içinde olduğunda fatal eror-out of memory hatasını veriyo bide isim de önemli ismi değiştirdiğimde derlemiyo bunun nedeni nedir ? pbp 246 değil pbp245-243 denedim ayni mcs plus kullanndım aynı problemler pbp dosyalarını masa üstüne atıp daerleyip yıne ordan alıp başka bir dosyaya atmak çok zor oluyo lütfen yardım :cry:  :cry:
"Eppur si muove!"

jeyhun

Herkese merhaba

Ben pic i ögrenmek ve ugrasmak istiyorum...

ama nereden baslayıp hangi dili kullanacagıma karar veremiorum yardımcı

olabilirmisiniz..???

simdiden teşekkür..:))

CaFFeiNe

hiç bilmiyorsan asm den başlayıp yüksek seviyeli bir dille devam etmen daha güzel olur
tabi asm öğrenirken haliyle pic in iç yapısını donanımını öğreneceksin ve asm ile uğraşırkende kullanacağın picin datasheeti en büyük yardımcın olacaktır (boşu boşuna 1-2$ a aldığımız piclere yüzlerce sayfa datasheet yazmıyorlar dimi)

mihri

slm arkadaşlar yukarıda yazdığım problemi çözdüm ben yanlış formatta kaydediyomuşum.
"Eppur si muove!"

kristalx

Arkadaşlar merhaba. Ben yeni yeni merak saldım bu konuya. Kitaplardan da faydalanmaya çalışıyorum. Anlatım bana göre karışık geldi. Sizin bu bahsi geçen dersleri hiçbir şekilde indiremiyorum. Yardımcı olabilirseniz. Teşekkürler..

tmr02

sevgili ete hoca;
size maillerim gelmediği için iki mail adresimden atmıştım.
bombardımandan ötürü özürdilerim.  :oops:

verdiğiniz bilgilerden yola çıkarak herşeyi hallettim.
ısıs için verdiğiniz pass versiyon tutmadığı için geçersizdi.
aradım bi yerde crack dosyası ile birlikte isis 6,3 sp1 buldum o çalıştı

sonra

dedikleriniz madde madde uyguladım.

sonra

prg3a yazdım.  hex dosyasını pic'e tanıttım.

lcd yi en başta çalıştırmadı ama sonra RW ucuna GND bağladım şimdi sorunsuz herşey.
:lol:  :lol:  :lol:

sabırlı yardımlarınız için çok çok çok teşekkür ederim.

3-4 gündür sizi mail bombardımanı ile uğraştırdım ama sonunda istediğim gibi herşey yoluna girdi.

mihri

slm, pbp de sadece 1. yada sadece 2. satırı nasıl silebilirim :?:   LCDOUT $FE,1 bu kamut bütün ekreanı temizliyo kullandığım lcd 2 satır 16 karakter
"Eppur si muove!"

CaFFeiNe

$FE, 2   (ilk satır)
$FE, C0 (ikinci satır)

ile istediğin satıra gelirsin sonra LCDOUT "              " gibi boşluk yazarsın (LCD ye göre artık kaç karakterse 8,16,20 vs)

mihri

$FE, 2 (ilk satır)
$FE, C0 (ikinci satır)

ile istediğin satıra gelirsin sonra LCDOUT " " gibi boşluk yazarsın (LCD ye göre artık kaç karakterse 8,16,20 vs)

sağol  ustam denedim çare oldu ama boşluk bırakarak pic in hafızasında boşuna yer kaplamış olmazmıyız daha pratik bi çözüm yokmu :?:
"Eppur si muove!"

bayramonur

LCD_OUT $FE,C2
gibi de C0 hexadesimal değerine +15'e kadar ekleyip istediğin konuma getirebilirsin.Bu zaten HD44780 tarafından algılanıyor.
Boşluk bırakmana gerek yok.

mihri

sanırım sorum pek anlaşılmadı ben bütün satırı silmek istiyorum yani 16 karakterse 16 sını birden boşluk yazarsam 16 karakterlik hafızada gereksiz yer kaplamış olucam tek bi satırı silmek benim için çözüm değil.
"Eppur si muove!"

mhk

Sevgili Mihri... Sana bir örnek.

basla:
adresb=$80:gosub ekransil    '1 satır silme 
adresb=$C0:gosub ekransil    '2.satır silme

goto basla


ekransil:
for satir=adresb to adresb+15
    LCDOUT $FE,satir," "
next
return



Uyarın için teşekkürler editlenmiş hali budur...
"Ya olduğun gibi görün, Ya da göründüğün gibi ol..." Mevlana

tmr02

sayın mhk hocam.
for next döngüsünde sürekli değişen değer adresb olduğuna göre;

LCDOUT $FE,satir," "  
yerine

lcdout $fe,adresb," "

yazmamız gerekmezmi acaba?

mihri

sağol  mhk buda bi çözüm tabii bu şekilde bir çözüm benimde aklıma gelmişti. ama anladığıma göre "LCDOUT $FE,1" gibi tek bir komutla satırları ayrı ayrı silemiyoruz :cry:
"Eppur si muove!"

mihri

#include <16F84A.h>
#fuses XT, NOWDT, PUT, NOPROTECT
#use delay(clock=4000000)

#define led port_b0

void main()
{
  basla:                      
  {
     output_high(pin_b0);
     delay_ms(200);
     output_low(pin_b0);
     delay_ms(200);
  }
  goto basla;


}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

TRISA=%11111
TRISB=%00000001
'-------------------------------------------------------------------------------
@ DEVICE pic16F84A
@ DEVICE pic16F84A,WDT_ON
@ DEVICE pic16F84A,PWRT_ON
@ DEVICE pic16F84A,PROTECT_OFF
@ DEVICE pic16F84A,XT_OSC
'-------------------------------------------------------------------------------
basla:
high portb.0
pause 200
low portb.0
pause 200
goto basla
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

yukarıdaki iki programda aynı işi yapıyo. 1. prg ccs de 2. prg pbp de yazıldı ama ortada bi tezat var ccs de wdt açık olduğunda program çalışmıyo, pbp de ise wdt nin açık yada kapalı olması farketmiyo her iki durumda çalışıyo neden :?:  bide bu sigortaların ne işe yaradığını ne zaman açık ne zaman kapalı olması gerektiğini anlatırsanız çok sevinirim. çalışmalarınızda başarılar dilerim.
"Eppur si muove!"