|
|
 |
Ответов
|
Dec 3 2006, 10:25
|
Участник

Группа: Новичок
Сообщений: 29
Регистрация: 19-12-05
Пользователь №: 12 407

|
спасибо, буду пробовать, вот только как именно (по какой методике) подбирали задержки?
|
|
|
|
|
Dec 3 2006, 15:43
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
to prottossПосмотрел Ваш код на предмет задержек и был слегка удивлен: Код #define CPU_CYCLE 408// длительность командного цикла МК в нс для частоты 2.4576MHz
#define COMM_PER_MCS (1000 / CPU_CYCLE) // количество команд CPU за микросекунду #define OW_DEL_A 6 * COMM_PER_MCS #define OW_DEL_B 64 * COMM_PER_MCS #define OW_DEL_C 60 * COMM_PER_MCS #define OW_DEL_D 10 * COMM_PER_MCS #define OW_DEL_E 9 * COMM_PER_MCS #define OW_DEL_F 55 * COMM_PER_MCS #define OW_DEL_G 0 * COMM_PER_MCS #define OW_DEL_H 480 * COMM_PER_MCS #define OW_DEL_I 70 * COMM_PER_MCS #define OW_DEL_J 410 * COMM_PER_MCS ИТОГО: COMM_PER_MCS=2 OW_DEL_H=960 // тактов, или 960/2.4576=390,625 мкс Ну и остальные задержки соответственно. Э...Э...Э Ну, то есть такой код работать не должен А если и работает, то это нам говорит, лишь о том, что продукция Dallas умеет хорошо подстраиваться под длительности импульсов которые ей посылаешь.
|
|
|
|
|
Dec 3 2006, 19:40
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата Думаю, что с Код #define COMM_PER_MCS ((1000 / CPU_CYCLE) + 1) Будет лучше Мне кажется что лучше вот так: Код #define CPU_CYCLE 408// длительность командного цикла МК в нс для частоты 2.4576MHz
#define COMM_PER_MCS (1000000 / CPU_CYCLE) // количество команд CPU за милисекунду #define OW_DEL_A (6 * COMM_PER_MCS)/1000 #define OW_DEL_B (64 * COMM_PER_MCS)/1000 #define OW_DEL_C (60 * COMM_PER_MCS)/1000 #define OW_DEL_D (10 * COMM_PER_MCS)/1000 #define OW_DEL_E (9 * COMM_PER_MCS)/1000 #define OW_DEL_F (55 * COMM_PER_MCS)/1000 #define OW_DEL_G (0 * COMM_PER_MCS)/1000 #define OW_DEL_H (480 * COMM_PER_MCS)/1000 #define OW_DEL_I (70 * COMM_PER_MCS)/1000 #define OW_DEL_J (410 * COMM_PER_MCS)/1000 А для коротких интервалов можно еще уточнить: #define OW_DEL_A (6 * COMM_PER_MCS)/1000 -1 // или -2 надо проверить в симуляторе #define OW_DEL_E (9 * COMM_PER_MCS)/1000 -1 чтобы учесть время выдачи бита на пин.
|
|
|
|
Сообщений в этой теме
asf Задержки в мкс на WinAVR. Нужно для 1-wire. Как? Dec 1 2006, 22:32 dvm11111111 Лови, мож поможет. Сразу хочу сказать, что задержк... Dec 2 2006, 03:12 defunct Цитата(asf @ Dec 1 2006, 22:32) Вроде ска... Dec 2 2006, 03:15 prottoss делал как то ради любопытства...Для DS1821 правда,... Dec 2 2006, 19:52   prottoss Цитата(singlskv @ Dec 3 2006, 19:43) to p... Dec 3 2006, 16:58    prottoss Цитата(singlskv @ Dec 3 2006, 23:40) Мне ... Dec 3 2006, 19:49     singlskv Цитата(prottoss @ Dec 3 2006, 19:49) Заче... Dec 3 2006, 20:02 SasaVitebsk Для IAR C (DS1820/18B20) у меня автоматически счит... Dec 3 2006, 16:23 asf так в том-то и дело, что на winavr не все так прос... Dec 3 2006, 19:35 aesok Цитата(asf @ Dec 3 2006, 20:35) так в том... Dec 3 2006, 19:42  asf Цитата(aesok @ Dec 3 2006, 19:42) Цитата(... Dec 4 2006, 09:41   aesok Цитата(asf @ Dec 4 2006, 10:41) Цитата(ae... Dec 4 2006, 10:24    asf Цитата(aesok @ Dec 4 2006, 10:24) Цитата(... Dec 4 2006, 10:38     aesok Цитата(asf @ Dec 4 2006, 11:38) Цитата(ae... Dec 4 2006, 11:05      asf Цитата(aesok @ Dec 4 2006, 11:05) Цитата(... Dec 4 2006, 11:23       asf Работает только детект
int OW_DetectPresence()
{... Dec 4 2006, 17:44        prottoss Цитата(asf @ Dec 4 2006, 21:44) Работает... Dec 4 2006, 18:10       aesok 1. Согласно документации:
_delay_us
...
The ma... Dec 4 2006, 18:14        asf Цитата(aesok @ Dec 4 2006, 18:14) 1. Согл... Dec 4 2006, 19:05         aesok Цитата(asf @ Dec 4 2006, 20:05) проект им... Dec 4 2006, 19:50          asf Цитата(aesok @ Dec 4 2006, 19:50) Цитата(... Dec 4 2006, 21:37           aesok Цитата(asf @ Dec 4 2006, 22:37) Цитата(ae... Dec 4 2006, 22:35            SasaVitebsk Я могу переписать на таймер. Например таймер 2. То... Dec 5 2006, 16:57 singlskv Цитата(asf @ Dec 3 2006, 19:35) так в том... Dec 3 2006, 20:24 prottoss Цитата(asf @ Dec 3 2006, 23:35) так в том... Dec 4 2006, 10:08
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|