C

Proton ile Timer1

Başlatan caylak, 14 Mayıs 2012, 03:56:10

emrej

Arkadaşlar yapmak istedigim Write 0, 684  sayısını yüklemek daha sonra
Read  komutu ile okuyup SAYAC degişkenine yüklemek  (SAYAC degişkeni word )




Write 0,684
Read 0,SAYAC


Hattuşa

#16
Sayac =684
eWrite 0,[sayac]

sayac =eread 0
Olmalidir

emrej

#17
Alıntı yapılan: pro-TR - 29 Mart 2015, 17:48:53
Sayac =684
eWrite 0,[sayac]

sayac =eread 0
Olmalidir




cevap için teşekkür ederim   program dili olarak pıcbasıc kullanıyorum
komutu kabul etmiyor write komutunun görevi enerji kesildiginde sayaçtaki sayıyı kaldıgı yerden devam ettirmek

@ DEVICE pic12F675                      'işlemci 12F675                               
@ 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_NOCLKOUT  'Dahili osilatör kullanılacak 
'INCLUDE "MODEDEFS.BAS"                      'BÜTÜN MODLARI DAHİL ET
OPTION_REG.7=1
CMCON=7
ANSEL=%00000000
ADCON0=%10000000
TRISIO=%00000000 'GPO GİRİŞ İÇİN SEÇİLDİ
GPIO=0
SAYAC VAR word
SAYAC=eread 0

BASLA:
for SAYAC=0 to 684
PAUSE 10
eWrite 0,[SAYAC]
If SAYAC>684 then SAYAC=0
next SAYAC
GOTO BASLA
END

Mucit23

Ewrite komutu işlemcinin eepromuna yazma için kullanılır. Fakat eeprom sürekli değişen verileri kaydetmekte kullanılmaz. Çünkü eepromun yazma ömrü sınırlıdır.(Yaklaşık 1000000 yazma, Okuma sınırsız.) Ufak bir hesap yapacak olursak yukarıdaki kodda 10ms aralıklarla eeproma yazma yapmışsınız. Buda saniyede 100 defa, Dakikada 6000 defa ve günde 8640000 yazma yaparki bu da eepromun daha 1 gün dolmadan bozulacağı anlamına gelir.

Bunun yerine şöyle birşey yapılabilir. Eğer elektrik kesintilerinde Devre kapanmadan elektrik kesintisini farkettirebilirseniz elektrik kesildiği anda kısa bir süre içerisinde verinizi kaydedebilirsiniz. Bunun için Mikroişlemcinin beslemesine yüksek kapasiteli bir iki adet kondansatör bağlanarak elektrik kesildikten sonra 1-2 saniye boyunca sistemin devam etmesi sağlanabilir. Tabi bu sırada veriler kaydedilmeli.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Ewrite proton basic komutudur. Baştan hangi derleyiciyi söylemediğin için üstelik proton ile ilgili bir konuya mesaj yazdığın için aldığın cevap proton temelli olmuş.
Ewrite yerine direk write yaz. Ancak pic basic pro direk word tipi değişkeni kullanmanı sevmeyebilir.
Bu nedenle wite adres,değişken.byte1,değişken.Byte0:pause 10 şeklinde kullan.
Ete

emrej

Alıntı yapılan: Mucit23 - 29 Mart 2015, 18:41:40
Ewrite komutu işlemcinin eepromuna yazma için kullanılır. Fakat eeprom sürekli değişen verileri kaydetmekte kullanılmaz. Çünkü eepromun yazma ömrü sınırlıdır.(Yaklaşık 1000000 yazma, Okuma sınırsız.) Ufak bir hesap yapacak olursak yukarıdaki kodda 10ms aralıklarla eeproma yazma yapmışsınız. Buda saniyede 100 defa, Dakikada 6000 defa ve günde 8640000 yazma yaparki bu da eepromun daha 1 gün dolmadan bozulacağı anlamına gelir.

Bunun yerine şöyle birşey yapılabilir. Eğer elektrik kesintilerinde Devre kapanmadan elektrik kesintisini farkettirebilirseniz elektrik kesildiği anda kısa bir süre içerisinde verinizi kaydedebilirsiniz. Bunun için Mikroişlemcinin beslemesine yüksek kapasiteli bir iki adet kondansatör bağlanarak elektrik kesildikten sonra 1-2 saniye boyunca sistemin devam etmesi sağlanabilir. Tabi bu sırada veriler kaydedilmeli.



cevap için teşekkür ederim Mucit23 kardeşim
Bu programda eWrite  eread komutu hata veriyor hata nerde yardımcı olurmusun


@ DEVICE pic12F675                      'işlemci 12F675                               
@ 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_NOCLKOUT  'Dahili osilatör kullanılacak 

OPTION_REG.7=1
CMCON=7
ANSEL=%00000000
ADCON0=%10000000
TRISIO=%00000001 'GPO GİRİŞ İÇİN SEÇİLDİ
GPIO=0
SYMBOL TUS=GPIO.0
SAYAC VAR word
D1 VAR word
D1=eread 0

BASLA:
for SAYAC=0 to D1
PAUSE 10
If TUS=1 then  D1=D1+1:PAUSE 1000
If D1>800 then D1=0
eWrite 0,[D1]
If SAYAC>D1 then SAYAC=0
next SAYAC
GOTO BASLA
END


Mucit23

#21
Onun cevabını @Ete hoca verdi sana.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

emrej

Alıntı yapılan: ete - 29 Mart 2015, 18:43:20
Ewrite proton basic komutudur. Baştan hangi derleyiciyi söylemediğin için üstelik proton ile ilgili bir konuya mesaj yazdığın için aldığın cevap proton temelli olmuş.
Ewrite yerine direk write yaz. Ancak pic basic pro direk word tipi değişkeni kullanmanı sevmeyebilir.
Bu nedenle wite adres,değişken.byte1,değişken.Byte0:pause 10 şeklinde kullan.
Ete



haklısınız ete hocam siteye yeni kayıt oldugum için yanlış yerde konu açmışım ben de sonradan fark ettim ete hocam write komutuna  byte  tipini kabul ediyor ama word tipini kabul etmiyor bana örnek bir write okuma yazma program yazabilirmisin

program dili pıc basıc
degişken word

örnek
read 0, D1

Write 0, D1



ete

SAY VAR WORD
...
...


SAY=640
Bu değeri Epromun 20 nolu adresine (aslında 20-21 nolu adreslere yazılır. Her adrese bir byte yazılıyor)
WRITE 20, SAY.Byte1 , SAY.Byte0 : pause 10
READ 20, SAY.Byte1 , SAY.Byte0

Ete

emrej

ete hocam verdigin bilgiler için çok teşekkür ederim

Powered by EzPortal