Quantcast
Channel: MCS Electronics Forum
Viewing all articles
Browse latest Browse all 20570

BASCOM-AVR : DS1307 At90usb1286 time not increasing : NEWTOPIC

$
0
0
After trying several samples from Bascom-avr, tgis forum and internet the Time on my display is not increasing. I2C is working with other I2C chips like eeprom's, ADC and DAC. The SQW signal can be switched on or off and the frequency can be changed. So assuming I2C and Crystal is ok. Maybe someone can have a look, regards Peter [code:1:57486f6ee6] $regfile = "usb1287.dat" $crystal = 16000000 $hwstack = 64 $swstack = 40 $framesize = 40 Config Lcd = 40 * 4 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , _ Db7 = Porta.7 , E = Porta.1 , Rs = Porta.3 , E2 = Porta.2 ' Systemvariable der LCD-Bibliothek (wichtig, bloß nicht ändern) Dim ___lcdno As Byte 'ohne LIB ' wählt die beiden oberen Zeilen aus ___lcdno = 0 Initlcd ' löscht die beiden oberen Zeilen Cls Cursor Off Lcd "DS1307_Versie V 1.00" ' wählt die beiden unteren Zeilen aus ___lcdno = 1 Initlcd Cls Cursor Off ___lcdno = 0 Cls 'Config TWI/I2C hardware $lib "i2c_twi.lbx" Config Twi = 100000 'busspeed Config Sda = Portd.1 Config Scl = Portd.0 Dim Twi_start As Byte Const Ds1307w = &HD0 Const Ds1307r = &HD1 I2cinit I2cstart ' Start I2cwbyte Ds1307w ' DS1307 schreiben I2cwbyte 7 ' DS1307 Adresszeiger auf 7 stellen I2cwbyte 176 ' DS1307 1 Hz I2cstop ' Einstellen der Datum-/Zeitfunktion in BASCOM dabei werden automatisch ' die Variablen _year,_month,_day,_hour,_min,_sec im BCD Format angelegt Config Clock = User ' Datumsformat deutsch Tag.Monat.Jahr und als Trennzeichen den Punkt Config Date = Dmy , Separator = . Cls Cursor Off ' Nur zum stellen der Uhr Kommentar entfernen Time$ = "17:30:59" Date$ = "24.08.07" Do Locate 2 , 1 : Lcd Mid(date$ , 1 , 8) Locate 2 , 12 : Lcd Mid(time$ , 1 , 8) Waitms 1000 Loop End ' Benutzer definierte Routinen die von der datetime.lib im BASCOM genutzt werden Dim Weekday As Byte Getdatetime: I2cstart ' Start I2cwbyte Ds1307w ' DS1307 schreiben I2cwbyte 0 ' DS1307 Adresszeiger auf 0 stellen I2cstop I2cstart ' Start I2cwbyte Ds1307r ' DS1307 lesen (ab vorher eingestellter Adresse 0) I2crbyte _sec , Ack ' Sekunden I2crbyte _min , Ack ' Minuten I2crbyte _hour , Ack ' Stunden I2crbyte Weekday , Ack ' Wochentag (in Dummy gelesen da von date$/time$ nicht genutzt) I2crbyte _day , Ack ' Tag I2crbyte _month , Ack ' Monat I2crbyte _year , Nack ' Jahr I2cstop _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) Return Setdate: _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) I2cstart ' Start I2cwbyte Ds1307w ' DS1307 schreiben I2cwbyte 4 ' DS1307 Adresszeiger auf 4 (Byte 5) stellen I2cwbyte _day ' Tag schreiben I2cwbyte _month ' Monat schreiben I2cwbyte _year ' Jahr schreiben I2cstop Return Settime: _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) I2cstart ' Start I2cwbyte Ds1307w ' DS1307 schreiben I2cwbyte 0 ' DS1307 Adresszeiger auf 0 stellen I2cwbyte _sec ' Sekunden schreiben I2cwbyte _min ' Minuten schreiben I2cwbyte _hour ' Stunden schreiben I2cstop Return [/code:1:57486f6ee6] [b:57486f6ee6][color=red:57486f6ee6](BASCOM-AVR version : 2.0.7.6 )[/b:57486f6ee6][/color:57486f6ee6]

Viewing all articles
Browse latest Browse all 20570

Trending Articles