include ‹90s8515.h›
const unsigned char CODE_TAB[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6 f,0x00};
unsigned char buffer[9];
unsigned char PTR;
#asm
.equ __i2c_port=0x12
.equ __sda_bit=3
.equ __scl_bit=2
#endasm
#include ‹ds1307.h›
void main(void)
{
unsigned char h,m,s,i;
PORTC=0x00;
DDRC=0xff;
PORTD=0x0C;
DDRD=0xf0;
TCCR0=0x02;
TCNT0=247;
TIMSK=0x02;
#asm("sei")
PTR=0;
PORTD=0;
i2c_init();
rtc_init(0,0,0);
rtc_set_time(0,0,0);
for(i=0;i‹9;i++)buffer[i]=10;
while (1)
{
rtc_get_time(&h,&m,&s);
buffer[7]=h/10;
buffer[6]=h-(h/10)*10;
buffer[4]=m/10;
buffer[3]=m-(m/10)*10;
buffer[1]=s/10;
buffer[0]=s-(s/10)*10;
for(i=0;i‹255;i++){};
};
}
interrupt[8]void timer0_ovf_isr(void)
{
if(PTR==10){PTR=0;PORTD=0x00;}
PORTD+=16;
PORTC=CODE_TAB[buffer[PTR]];
PTR++;
}
Это исходник. Проблемма в том что Протеус6.9 дико тормозит с I2C особенно когда подключаю подтягивающие резисторы R8 и R9 между VCC и I2C шиной Хотя симуляция верна (Железо CPU 3.4GHz )Где проблемма?
-- Прилагается рисунок: --