I finally give it some try, but the code does not looks like a picbasic? It seems like it is using a different syntax to call subroutines? (can't verify right now, do not have PBP on this PC)
Code:' PICBASIC PRO code to read hours and minutes from DS3231 and send over serial port ' Define PIC16F877A configuration bits #CONFIG CONFIG FOSC = HS ; High-speed oscillator CONFIG WDTE = OFF ; Watchdog Timer disabled CONFIG PWRTE = ON ; Power-up Timer enabled CONFIG BOREN = ON ; Brown-out Reset enabled CONFIG LVP = OFF ; Low-Voltage Programming disabled CONFIG CPD = OFF ; Data memory code protection disabled CONFIG WRT = OFF ; Flash Program Memory Write protection off CONFIG CP = OFF ; Flash Program Memory Code protection off #ENDCONFIG ' Define constants DS3231_SDA VAR PORTB.0 ; DS3231 Serial Data line DS3231_SCL VAR PORTB.1 ; DS3231 Serial Clock line SERIAL_TX VAR PORTD.1 ; Serial transmit pin ' Define variables Hours VAR BYTE ; Variable to store hours Minutes VAR BYTE ; Variable to store minutes ' Main program MAIN: TRISB.0 = 1 ; Set DS3231 SDA pin as input TRISB.1 = 1 ; Set DS3231 SCL pin as input TRISD.1 = 0 ; Set serial transmit pin as output ' Initialize I2C communication I2CSetup DS3231_SDA, DS3231_SCL, 100000 ' Main loop DO ' Read hours from DS3231 I2CStart I2CSend($D0) ; DS3231 I2C address for writing I2CSend($00) ; Send the register address for hours I2CStart I2CSend($D1) ; DS3231 I2C address for reading Hours = I2CRead(1) ; Read hours and send acknowledgment I2CStop ' Read minutes from DS3231 I2CStart I2CSend($D0) ; DS3231 I2C address for writing I2CSend($01) ; Send the register address for minutes I2CStart I2CSend($D1) ; DS3231 I2C address for reading Minutes = I2CRead(0) ; Read minutes and send acknowledgment I2CStop ' Send hours and minutes over serial port SEROUT SERIAL_TX, T9600_16, ["Time: ", DEC Hours, ":", DEC2 Minutes, 13, 10] PAUSE 1000 ; Delay for some time before reading again LOOP ' Subroutine to initialize I2C communication I2CSetup: I2CWrite SDApin, SCLpin, I2C_HIGH ; Set pins and speed RETURN


Reply With Quote


Bookmarks