Input. CE signal must be asserted high during a read or a write. This pin has an internal 40kΩ (typ) pulldown resistor to ground. Note: Previous data sheet revisions referred to CE as RST. The functionality of the pin has not changed.
Это из датшит про ресет, в изображении вырезаном из датшита видно что ету ногу поднимают перед началом записи или чтения
вроде все правильно прошил в железо тоже не работает помогите разобраться.
Код:
void ReadDS_Min (void)
{
char adrDS=131;
char b=0;
char indexDS;
PORTA.3=1;
indexDS=adrDS;
for(b=0;b<8;b++){
if(indexDS&0x80){
PORTA.2=1;}
else{
PORTA.2=0;}
PORTA.1=1;
delay_us(1);
PORTA.1=0;
indexDS=indexDS<<1;}
b=0;
delay_us(1);
for(b=0;b<8;b++){
if(PORTA.2==1){
indexDS |= (1<<8);}
else{
indexDS &= (~(1<<8));}
PORTA.1=1;
delay_us(1);
PORTA.1=0;
indexDS=indexDS<<1;}
delay_us(1);
PORTA.3=0;
Rmin=indexDS;
}
читаю из часиков вот так.
Добавлено спустя 1 час 26 минут 7 секунд:Код:
void WriteDS_Sec (unsigned char sec) // При вызове функции в переменную сек пишу 135
{
char adrDS=129; // адрес для записи секунд
char b=0;
char indexDS;
PORTA.3=1; // 1 на ногу подключенную к ресет
indexDS=adrDS;
for(b=0;b<8;b++){ // тут я передаю адрес
if(indexDS&0x1){
PORTA.2=1;}
else{
PORTA.2=0;} // PORTA.2 подключено в дата
PORTA.1=1; // PORTA.1 подключено к CLk
PORTA.1=0;
indexDS=indexDS>>1;}
b=0;
indexDS=sec1;
for(b=0;b<8;b++){ // тут передаю начальный счет секунд
if(indexDS&0x1){
PORTA.2=1;}
else{
PORTA.2=0;}
PORTA.1=1;
PORTA.1=0;
indexDS=indexDS>>1;}
PORTA.2=0;
PORTA.3=0;
}
так ну я исправил код сейчас инициализирует и в значение секунд пишет то что я хочу но тикать не тикает, по дш написано что для старта надо записать 1 в седбмой бит секунд но тогда и значение сек будет 0??? Правильно