Вот кусок кода.
#asm .equ __i2c_port=0x18 ;PORTB .equ __sda_bit=3 .equ __scl_bit=4 #endasm #include <i2c.h>
#include <ds1621.h>
void main(void) { unsigned int ADCVal[ADCChannels]; int Tin=0,Tout=0; char rtcHour=18,rtcMin=88,rtcSec=88,Hour=0,rtcDay=88,rtcMonth=88,rtcYear=88; char i,j,Min=0,Sec=0,nADCCount=0; char cText1[]="T OUT",cText2[]="T IN",cText3[]="POWER";
OCR1A = 1018; TCCR1B = 9; TCCR1A = 0x00; TIMSK = 0x10; DDRD = 0xf0;
PORTA=0b00001111; DDRA= 0b11110000;
ADMUX=0b11000011; ADCSRA=0x87;
PORTA.7=0; PORTA.6=0; PORTA.5=0; PORTA.4=0; delay_ms(100); PORTA.7=1; PORTA.6=1; PORTA.5=1; PORTA.4=1;
i2c_init(); PORTA.7=0;
ds1621_init(0,50,70,0); --------------------- Здесь останавливается и ждет. PORTA.6=0; Tin=ds1621_temperature_10(0);
ds1621_init(1,50,70,0); PORTA.5=0; Tout=ds1621_temperature_10(0);
MCUCR = 0b10000000; #asm ("sei");
}
Сегодня поставил резисторы 2.2к - не стартует. Поставил 1.5к - стартует, но, примерно, через 1 минуту данные из второй 1621 не читаеn. Из первой читает. В понедельник 1к поставлю.
Сообщение отредактировал D H - Feb 16 2007, 19:13
|