По фьюзам на atega 8535, подскажите.
Какие нужны фьюзы для работы с RTC?
Проблема пока в том, что загоряются все пятерки, кварц менял, стоит на 32768 гц, питание подается к ним подается, куда проще всего ковырять в таких случаях? осциллографа нет к сожалению(
пока что грешу на прошивку, она была изначально написана для ds1307, а у меня M41T56M6F.
ВОт кусок прошивки в Code Visoin:
Код: Выделить всё
#include <mega8535.h>
#include <delay.h>
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
#include <bcd.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
void main(void)
{
DDRA=0xFF;
DDRB=0xFF;
PORTC=0xFF;
DDRD=0xFF;
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
// I2C Bus initialization
i2c_init();
tmp = rtc_read(0x00);
//tmp &=~(1<<7);
tmp=tmp&0b01111111;
rtc_write(0x00, tmp); //включение DS1307, бит 7 ноль
tmp = rtc_read(0x02);
//tmp &=~(1<<6);
tmp=tmp&0b0111111;
rtc_write(0x02, tmp); // бит 6 ноль - 24ох часовой режим
rtc_init(0, 1, 1); // включение генератора импульсов
rtc_set_time(23, 59, 59);
До этого я программно заставлял идти секунды, так что в плате вроде все в порядке.
Честно скажу: код для меня этот не очень понятен, возможно я просто не так связываюсь с часами, или нечто такое.
Вообще адрес этих часиков я так понял с даташита 1101000-slave address, как будет код выглядеть в данном случае?
Хотя DS1307 имеет такой же адрес вроде..или я что то не понимаю(
Спасибо за советы.