ds1307 okuma/yazma problemi

Başlatan feridoo, 11 Mayıs 2013, 14:45:14

feridoo

Merhaba arkadaşlar:
2 gündür picbasic plus da yazdığım kodlarla ds1307 den bilgi okumaya uğraşıyorum ama olmuyor. birçok örnek inceledim örnekleri verenler çalıştığını söylüyor  ben o örnek kodları yazıyorum,  programı derlediğim zaman "I2CWRITE komutu desteklenmiyor. Bunun yerine BUSOUT kullanın" şeklinde hata veriyor. ama örnek kodlarda hep I2C protokolünü kullanmış. artık son çare bilen arkadaşlardan yardım almak. o kadar çok örnek okudum ve denedim ki yazdığım tüm örnekleride sildim. biraz hazırcılık olacak ama bana 16f877 ile ds1307 ye okuma ve yazma yapabilceğim program kodalarını bilen arkadaşların yazması mümkün mü?
en son bulduğum ve denediğim örnek kod.

device 16f877
declare xtal 20
include "modedefs.bas"
DECLARE LCD_DTPIN PORTa.0   '
LCD_RSPIN = PORTe.0
LCD_ENPIN = PORTa.5
LCD_INTERFACE = 4   ' 4-bit Interface
LCD_LINES = 2
LCD_TYPE = 0
ALL_DIGITAL = TRUE

DEFINE LCD_COMMANBUS 2000 ;komut gecikme süresi mikrosaniye olarak
DEFINE LCD_DATAUS 50 ;veri gecikme süresi mikrosaniye olarak
RTCSec Var Byte
RTCMin Var Byte
RTCHour Var Byte
RTCDay Var Byte
RTCDate Var Byte
RTCMonth Var Byte
RTCYear Var Byte
RTCCtrl Var Byte

RTCMode Var Byte
RTCDivisor Var Byte



SDA Var PORTB.1
SCL Var PORTB.2


Low PORTB.3

Pause 100


RTCSec = $45
RTCMin = $59
RTCHour = $11
RTCDay = $01
RTCDate = $01
RTCMonth = $01
RTCYear = $07
RTCCtrl = 1


RTCMode = 1

RTCDivisor = 0


Gosub SetRTC

Goto MainLoop


SetRTC:
I2CWrite SDA, SCL, $D0, $00, [RTCSec, RTCMin, RTCHour, RTCDay, RTCDate, RTCMonth, RTCYear, RTCCtrl]
Return


GetRTC:
I2CRead SDA, SCL, $D0, $00, [RTCSec, RTCMin, RTCHour, RTCDay, RTCDate, RTCMonth, RTCYear, RTCCtrl]
Return


MainLoop:

Gosub GetRTC

Lcdout $FE, 1


LCDOUT "T: ", hex2 RTCHour, ":", hex2 RTCMin, ":", hex2 RTCSec


lcdout $FE, $C0

Lcdout "D: ", hex2 RTCMonth, "/", hex2 RTCDate, "/" , hex2 RTCYear


Pause 250

Goto MainLoop

End

Elzemefe

Kardeş  kodlarını  kim verdi merak ettim doğrusu
daha çok sağdan soldan toplamaya benziyor..
kodların birazı  PROTON ait biraz PIC BASIC  e ait ama anladığım
kadarı ile sen protonda yazıyosun busout hatası verdiğine göre...

http://www.protonbasic.co.uk/content.php/425-How-to-use-DS1307-RTC

verdiğim linke bir bak bu sanırım senin işini görecektir

feridoo

öncelikle konuya ilginden dolayı tşk ederim. dediğim gibi o kadar çok örnek araştrıdım ve denedim ki bu yazdığım örneğide yabancı bir siteden aldım. ben basic dilinde yazmaya çalışıyorum. protonu hiç denemedim.

Elzemefe

busout basıc te yok ...ayrıca LCD tanımlalarında hata vermesl lazımdı eğer PIC basıc olsa  idi

Elzemefe

Ekteki resimleri  kontrol edermisin hangi editor ü  kullanıyorsun
göre karar ver..

feridoo

picbasic kllanıyorum ekte resmini gönderdim.  picbasic de ds1307 kontrolü için program lazım

ete


Siteyi araştırsan mutlaka işine yarayacak bir örnek program bulabilirdin.
Bu RTC yi , algoritma çalışması yaptığımız bir  projemizde kullanmıştık. Aşağıdaki linkte detaylar mevcuttur.
http://etepic.com/index.php/topic,56.0.html

Direk programa bakayımdiyorsan yine aşağıdaki linki kullan.
http://etepic.com/index.php?action=dlattach;topic=56.0;attach=540

RTC nin kullanımı hakkında detaylı bir yazı yazmıştım. Faydası olur diye onuda veriyorum. Okumanda yarar vardır.
http://etepic.com/index.php/topic,458.0.html

KOlayGelsin
Ete

pwm.c

Alıntı yapılan: feridoo - 11 Mayıs 2013, 16:29:24
picbasic kllanıyorum ekte resmini gönderdim.  picbasic de ds1307 kontrolü için program lazım
bu gösterdiğin proton derleyicisinin çok eski bir versiyonu yani pic basic pro değil. protonun diğer adı pic basic plus diye geçer. bu ikisini birbirine karıştırma.
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

feridoo

başta ete hocama ve konuya ilgi gösteren arkadaşlara tşk  ederim. sayenizde ne yapmama gerektiğini anladım.  tkr tşk.

Powered by EzPortal