реклама на сайте
подробности

 
 
> DS1338 + XMEGA
Pavel_Bor
сообщение Jul 6 2011, 12:14
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



В даташите на эти часики указаны 2 режима работы: Fast mode(400КГц), Standart mode(100КГц).
В меге инициализирован RC на 32Мгц.
Как между собой связать скорости. или какое время нужно давать при задержке.

При коде следующего вида никаких изменений не происходит..

CODE
void rtc_init()
{
RTC_DATA_DIR_SET;
RTC_DATA_SET;
RTC_SCL_UP;
delay_us(1);
}

void rtc_start()
{
RTC_DATA_CLR;
delay_us(1);
RTC_SCL_DOWN;
delay_us(1);
}

void rtc_stop()
{

RTC_SCL_UP;
delay_ms(1);
RTC_DATA_DIR_SET;
RTC_DATA_SET;
delay_ms(1);
}

void rtc_write (unsigned char buffer)
{
unsigned char MASK;
RTC_DATA_DIR_SET;
for(i=8;i>=0;--i)
{
if(buffer&&MASK )
RTC_DATA_SET;
else
RTC_DATA_CLR;
RTC_SCL_UP;
delay_ms(1);
RTC_SCL_DOWN;
delay_ms(1);
MASK>>1;
}

RTC_SCL_UP;
delay_ms(1);
RTC_SCL_DOWN;
delay_ms(1);
}

unsigned char read_rtc()
{
unsigned char buffer=0;

RTC_DATA_DIR_CLR;
for(i=8;i>=0;--i)
{
buffer|=((buffer<<1)||(PORTE.IN&PIN3_bm));
RTC_SCL_UP;
delay_ms(1);
RTC_SCL_DOWN;
delay_ms(1);
}
return buffer;
}

void RTC_ACKNOWLEGDGE_0()
{
RTC_DATA_DIR_SET;
RTC_DATA_SET;
delay_ms(1);
RTC_SCL_UP;
delay_ms(1);
RTC_SCL_DOWN;
delay_ms(1);
}

void RTC_ACKNOWLEGDGE_1()
{
RTC_DATA_DIR_SET;
RTC_DATA_CLR;
delay_ms(1);
RTC_SCL_UP;
delay_ms(1);
RTC_SCL_DOWN;
delay_ms(1);
}


Сообщение отредактировал IgorKossak - Jul 6 2011, 20:08
Причина редактирования: [codebox]!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alexeyv
сообщение Jul 7 2011, 07:52
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 298
Регистрация: 26-01-09
Из: Пермь
Пользователь №: 43 940



1. А не забыл в rtc_init что-то типа RTC_SCL_DIR_SET; ??

2. Не правильно!!

Цитата
написал по другому

if(buffer&&0x80)


Это у тебя логическое выражение, а тебе надо битовое, вместо "&&" надо использовать "&"

3.
Цитата
кто как привык..


Судя по коду, ты еще не привык. Так что привыкай использовать принятые соглашения. Почитай книжку Ален И. Голуб. "ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ, ЧТОБЫ…" Москва 2001г. Будет интересно.

Сообщение отредактировал alexeyv - Jul 7 2011, 08:03
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pavel_Bor   DS1338 + XMEGA   Jul 6 2011, 12:14
- - alexeyv   Кодvoid rtc_write (unsigned char buffer) {...   Jul 7 2011, 04:55
|- - Pavel_Bor   ЦитатаЗначение с шины надо считывать ПОСЛЕ подачи ...   Jul 7 2011, 06:04
- - alexeyv   1. А это исправил? Цитата2. MASK>>1; - перем...   Jul 7 2011, 06:39
|- - Pavel_Bor   Цитата1. А это исправил? написал по другому if(bu...   Jul 7 2011, 07:18
|- - Pavel_Bor   RTC_SCL_DIR_SET; в инициализации портов ЦитатаЭт...   Jul 7 2011, 08:11
- - alexeyv   Цитата"&"="*" "&...   Jul 7 2011, 08:36
|- - Pavel_Bor   ЦитатаВ первом листинге не было!!! я ...   Jul 7 2011, 08:51
- - alexeyv   Цитатая в листинг не включал. Так может ошибки в ...   Jul 7 2011, 09:01
|- - Pavel_Bor   Цитата(alexeyv @ Jul 7 2011, 12:01) Так м...   Jul 7 2011, 09:09
- - alexeyv   Поздравляю! Только 248=0xF8, а 0xFF=255.   Jul 7 2011, 09:17
|- - Pavel_Bor   Цитата(alexeyv @ Jul 7 2011, 12:17) Тольк...   Jul 7 2011, 09:29
- - alexeyv   В функции rtc_write после цикла выставления байта ...   Jul 7 2011, 10:23
|- - Pavel_Bor   Код bool RTC_ACKW() { RTC_DATA_DIR_CLR; ...   Jul 7 2011, 10:36
- - alexeyv   функцию контроля АСК проще сделать не отдельно, а ...   Jul 7 2011, 10:56
|- - Pavel_Bor   ЦитатаМаленький вопрос. Подтягивающие резисторы на...   Jul 7 2011, 11:04
- - alexeyv   ЦитатаНаправление порта должно быть входом иначе н...   Jul 7 2011, 11:09
|- - Pavel_Bor   Цитата(alexeyv @ Jul 7 2011, 14:09) В смы...   Jul 7 2011, 11:21
- - alexeyv   Цитата(Pavel_Bor @ Jul 7 2011, 16:21) а в...   Jul 8 2011, 03:00
|- - Pavel_Bor   Я так понимаю время задержки между тактами значени...   Jul 8 2011, 07:23
- - alexeyv   Цитатаwhile(in_sda()); Во время подачи клока, по ...   Jul 11 2011, 04:39
|- - Pavel_Bor   С часами уже все ок) Значение с внешнего RTC (DS13...   Jul 11 2011, 11:37
- - alexeyv   ЦитатаПрерываний будет много но со временем. (клав...   Jul 11 2011, 12:10
- - Pavel_Bor   Сделаем. Спасибо   Jul 11 2011, 13:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01375 секунд с 7
ELECTRONIX ©2004-2016