Programda hata var

Başlatan Acoustica, 05 Mart 2011, 19:45:45

Acoustica

Yeniden merhaba arkadaşlar,
Pic serüvenine başladığım günden beri  yavaş yavaş ilerliyor olsam da  ,hatalar ve sorunlar ile karşılaşıyor olsam da siz değerli büyüklerin ve kardeşlerimin vasıtası ile sorunları aşıyor ve konuyu daha iyi pekiştiriyorum.
Bugün sizlere toplamda 3 sorum olacak, isterseniz sırası ile soruları sırası ile sorayım.

1-Geçenlerde 12C508A ile bir on-off devresi yapmıştım, hatta bir iki yerinde hata yapıp hatalarımı sizler düzeltmiştiniz12C508 ile yapmış olduğum devrede hiçbir sıkıntı yok mükemmel çalışıyor ama simülasyondan reele daha aktarmadım ama sıkıntısı yok gibi.. Aynı devreyi 12F675 ile yaptığımda çalıştırmadım. Zaten devre şeması aynı, sadece PIC farklı. CMCON ve ANSEL komutları ile analog komprador pinleri iptal etmeme rağmen ( 12f675 bildiğim kadarı ile analog comparatör pinleri ve adc sahip, tabii datasheetine bakmadım) PROCESSOR HAS BEEN RESET BY WATCHDOG TIMER EXPIRING AT TIME hatası ile sürekli hata veriyor. Buradan benim anladığım watchdog sürekli reset atıyor. Programın sigorta ayarlarında WDT_ON yani açık idi. Bu hatayı verince WDT_OFF yapıp kapatmama rağmen yine sürekli PROCESSOR HAS BEEN RESET BY WATCHDOG TIMER EXPIRING AT TIME hatası ile karşılıyorum. Bu hataya neden olan nedir? Detaylı açıklayabilir misiniz?

2-Bir PIC e program yazarken sigorta ayarları yapıyoruz, bende bildiğim ve öğrendiğim kadarı ile sigorta ayarları yapıyorum, mesela bir örnek verecek olur isem,
@ DEVICE PIC12F675
@ DEVICE PIC12F675 WDT_ON
@ DEVICE PIC12F675 PWRT_ON
@ DEVICE PIC12F675 PROTECT_OFF
@ DEVICE PIC12F675 MCLR_OFF
@ DEVICE PIC12F675 INTRC_OSC_NOCLKOUT
Bu şekilde yapmış olduğum bir sigorta ayarında MCS de derlediğimde alt sütunda bir hata veriyor, hata aynen şu şekilde
ERROR PICXXX ~1.ASM 49 :[212] EXTRA TOKENS ON END OF LINE
Tabii yukarda yazmış olduğum 49 arkasından 55 61 67 73 vs. diye devam ediyor.
Anladığım kadarı ile bu program yazdığımız kodu asm, hex,pbp,mac olarak çeviriyor bu hata kodu ASM ye çevirdiği dosya kodu ile alakalı düşündüm. Peki bunun tam manası ile hata neye istinaden neden veriliyor? Zararı nedir,Hex dosyasını etkiler mi?

3-Yazdığım programı PIC e atmak için US-BURN  V1.11 kullanıyorum. Programda 12C508 yok 12F508 var karşılaştırdığımda aralarında fark yok gibi. Mantıken aynı geldiği için 12F508 seçtim ama bu sefer takılan PICI tanımadığı için program atmıyor.12C508 elimde 100 tane civarında olduğu için nasıl programlayabilirim? Ne yapabilirim?

Evet arkadaşlar konu ile ilgili sorularım bunlar, ekte sunmuş olduğum sema ve kodlar ayrıca US-BURN ile ilgili seçeneklerle ile alakalı resimler var.
Yardımlar için hepinize çok teşekkürlerimi ve saygılarımı sunuyorum.
Yeniden görüşmek umudu ile,
Sağlıklı kalın esen kalın.
Tufan Han DAĞ

[IMG]http://img717.imageshack.us/img717/8866/12c508adevresemasi.jpg[/img]

Uploaded with ImageShack.us

[IMG]http://img46.imageshack.us/img46/7503/12c508akodsayfasi.jpg[/img]

[IMG]http://img845.imageshack.us/img845/3968/12f675devresemasi.jpg[/img]

Uploaded with ImageShack.us

[IMG]http://img824.imageshack.us/img824/5060/12f675hatakodu.jpg[/img]

Uploaded with ImageShack.us

[IMG]http://img233.imageshack.us/img233/7780/12f675kodsayfasi.jpg[/img]

Uploaded with ImageShack.us

[IMG]http://img263.imageshack.us/img263/7540/usburn1.jpg[/img]

Uploaded with ImageShack.us

[IMG]http://img688.imageshack.us/img688/8251/usburn2.png[/img]

Uploaded with ImageShack.us

Uploaded with ImageShack.us
Dahilerin yüzde biri hüner, yüzde doksan dokuzu da terdir. "Thomas Edison"  Eski "TufanHan"

Mucit23

Tam bilgim yok ama 12F675 de dahi osilatör ayarları var. Bu ayarlar fabrikada ayarlanır. 12F675 in içeriği silindiğinde bu osilatör yarlarıda siliniyor. Bu ayarlar kaybolduğunda tekrar fabrika ayarlarına döndürmek çok zordur. Bu bilgilerin silinmemesi için programın başında DEFINE OSCCAL_1K 1
komutu eklenmelidir. Ayrıca analog ve comparator pinleride devre dışı bırakmak gerekir. Dediğim gibi fazla bilgim yok bu picle. Ayrıntılar üstatlarımızda.

Acoustica

#2
Alıntı yapılan: mucit23 - 05 Mart 2011, 20:55:15
Tam bilgim yok ama 12F675 de dahi osilatör ayarları var. Bu ayarlar fabrikada ayarlanır. 12F675 in içeriği silindiğinde bu osilatör yarlarıda siliniyor. Bu ayarlar kaybolduğunda tekrar fabrika ayarlarına döndürmek çok zordur. Bu bilgilerin silinmemesi için programın başında DEFINE OSCCAL_1K 1
komutu eklenmelidir. Ayrıca analog ve comparator pinleride devre dışı bırakmak gerekir. Dediğim gibi fazla bilgim yok bu picle. Ayrıntılar üstatlarımızda.

Zaten, Ansel ve CMCON komutları ile analog komparatörleri ve ADC kapattım.Programıda ISIS de simule ettim.
Daha reelde çalıştırmadım.Çünkü 12C508A da çalışıyor, ama 12F675 de çalışmıyor.12C serisini programlayıcım yüzünden programlayamadığımdan elimdeki 12F serisine geçtim.derdim bu anlayacağın :((((
Dahilerin yüzde biri hüner, yüzde doksan dokuzu da terdir. "Thomas Edison"  Eski "TufanHan"

FUNKY



@ DEVICE PIC12F675 WDT_ON

bu satır  wdt-off olacak ...

Acoustica

Alıntı yapılan: FUNKY - 05 Mart 2011, 21:10:15


@ DEVICE PIC12F675 WDT_ON

bu satır  wdt-off olacak ...

O resmi upload etmeyi unutmuşum,WDT_OFF oldğunda da yine reset atıyor,zaten sorunu çözemediğimden dolayı buraya yazdım.
Dahilerin yüzde biri hüner, yüzde doksan dokuzu da terdir. "Thomas Edison"  Eski "TufanHan"

FUNKY

MCLRE ucunu 4k7 drençle +5v a bapla  sim . de gözükmüyor

Acoustica

Yeniden merhaba
Zaten sigorta ayarlarında MCLR_OFF yapmıştım.MCLR off durumda.
Dahilerin yüzde biri hüner, yüzde doksan dokuzu da terdir. "Thomas Edison"  Eski "TufanHan"

FUNKY

Alıntı yapılan: TufanHan - 05 Mart 2011, 21:19:54
Yeniden merhaba
Zaten sigorta ayarlarında MCLR_OFF yapmıştım.MCLR off durumda.

evet  haklısın 

12f675 in gp0 ve gp1  girişleri komparator  de olduğunadan  comparatoru  iptal etmek lazım analog girişleri digital yapmalıyız  CMCON=7.. toggle komutu   once belli bir lojik sevyede olan durumu tersler önce  led=0  yazıp ilk bilgiyi vermek lazım
bu kod çalışıyor


Device=12F675

Config CPD_OFF,CP_OFF,MCLRE_off,PWRTE_on,WDT_off,INTRC_OSC_NOCLKOUT
#define OSCCAL_1K 1
Xtal=4
TRISIO=%00000001
Input GPIO.0
Output GPIO.1
ANSEL=0
CMCON=7

Symbol buton =GPIO.0
Symbol led =GPIO.1
buton=1
led=0
basla:

If buton = 0 Then
DelayMS 500
Toggle led
EndIf
GoTo basla

Maxim

konuyu ben ayırdım
herşeyi tek başlık altında yazmak olmaz değilmi ?

Acoustica

Tünaydın Arkadaşlar,

Birinci sorumun cevabını tam olarak aldım.Demek ki CMCON=7 yapıp portları dijitale çevirse imişim program çalışacakmış.

İkinci ve üçüncü sorular için tam mahiyetinde cevaplar alamadım...
Sorularım devam ediyor..
Dahilerin yüzde biri hüner, yüzde doksan dokuzu da terdir. "Thomas Edison"  Eski "TufanHan"

ete

İkinci sorunu ben cevaplayayım.
Hata mesajlarında Token lafı geçtimi komutlarda ya fazladan bir işaret yada karekter yada tersi eksik karekter aramalısınız.
Baktımda senin komutlarda virgüller eksik yazılmış doğrusu aşağıdadır.
@ DEVICE pic12F675                      'işlemci 16F628                                
@ DEVICE pic12F675, WDT_ON              'Watch Dog timer açık
@ DEVICE pic12F675, PWRT_ON             'Power on timer açık
@ DEVICE pic12F675, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic12F675, MCLR_off            'MCLR pini kullanılMIYOR.
@ DEVICE pic12F675, INTRC_OSC_CLKOUT  'Dahili osilatör kullanılacak


Üçüncü sorunu cevabı ise gayet basit. Programlayıcın 12C508'i desteklemiyor. Bu durumda yapman gereken destekleyen bir programlayıcı edinmen olacaktır. PicKit2 yi tavsiye ederim. Hemen hemen programlamadığı yok gibi.
Üstelik klon olanlar ve özellikle yalnız 5V luk picleri programlayanlar bile işini rahatlıkla görecektir.

KolayGelsin
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Acoustica

#11
Alıntı yapılan: ete - 06 Mart 2011, 13:20:46
İkinci sorunu ben cevaplayayım.
Hata mesajlarında Token lafı geçtimi komutlarda ya fazladan bir işaret yada karekter yada tersi eksik karekter aramalısınız.
Baktımda senin komutlarda virgüller eksik yazılmış doğrusu aşağıdadır.
@ DEVICE pic12F675                      'işlemci 16F628                                
@ DEVICE pic12F675, WDT_ON              'Watch Dog timer açık
@ DEVICE pic12F675, PWRT_ON             'Power on timer açık
@ DEVICE pic12F675, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic12F675, MCLR_off            'MCLR pini kullanılMIYOR.
@ DEVICE pic12F675, INTRC_OSC_CLKOUT  'Dahili osilatör kullanılacak


Üçüncü sorunu cevabı ise gayet basit. Programlayıcın 12C508'i desteklemiyor. Bu durumda yapman gereken destekleyen bir programlayıcı edinmen olacaktır. PicKit2 yi tavsiye ederim. Hemen hemen programlamadığı yok gibi.
Üstelik klon olanlar ve özellikle yalnız 5V luk picleri programlayanlar bile işini rahatlıkla görecektir.

KolayGelsin
Ete


Ete Hocam çok teşekkürler,yardımlarınız vasııtası ile bu işe başkoyuyoruz.
Emekleriniz için gerçekten çok teşekkür ederim,Hz Ali (r.a) nın da buyurduğu gibi bana bir harf öğretenin kölesi olurum.
Sağolun varolun,yeni bir mesaja kadar
Sağlık ve Selametle...
Dahilerin yüzde biri hüner, yüzde doksan dokuzu da terdir. "Thomas Edison"  Eski "TufanHan"