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

 
 
> DS18b20, Исходный код ARM
huntero4ek
сообщение May 25 2009, 14:41
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 24-05-09
Пользователь №: 49 496



Здравствуйте. Хочется сделать небольшую программку на AT91SAM7 для получения температуры с датчика DS18b20, самому писать не хочеться) Обыскал инет и не нашел ничего полезного. Для AVR - уйма всяких исходников, а вот под ARM - ни одного. Буду очень благодарен (и думаю не только я), если кто-нибудь выложит исходный код опроса термодатчика под IAR)))
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
huntero4ek
сообщение Jun 16 2009, 07:17
Сообщение #2





Группа: Новичок
Сообщений: 11
Регистрация: 24-05-09
Пользователь №: 49 496



Никак не могу побороть проблему с генерацией временных задержек таймером.
Код
#define TC_CLKS_MCK8             0x1

void timer_init ( void )
{
AT91F_TC_Open(AT91C_BASE_TC1,TC_CLKS_MCK8,AT91C_ID_TC1);
AT91F_AIC_ConfigureIt ( AT91C_BASE_AIC, AT91C_ID_TC1, TIMER1_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, timer1_c_irq_handler);
AT91C_BASE_TC1->TC_IER  = AT91C_TC_CPCS;
}

Таким образом,инкримент счетчика будет происходить 48000000/8=6000000 раз/с.
сделал процедурку
Код
void UTIL_DelayTimeInUs(unsigned long time_us)
{
  DelayFlag = 0;
  AT91C_BASE_TC1->TC_RC = 6*time_us; //умножив на шесть, получим 1 инкримент счетчика за 1мкс
//умножив все это на требуемое количество мкс получим прерывание, по истечении заданного кол-ва мкс
  AT91C_BASE_TC1->TC_CCR = AT91C_TC_SWTRG;
  AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_TC1);  
  while(!DelayFlag);
  AT91F_AIC_DisableIt (AT91C_BASE_AIC, AT91C_ID_TC1);
}


void timer1_c_irq_handler(void)
{
  AT91PS_TC TC_pt = AT91C_BASE_TC1;
  unsigned int dummy;
  static unsigned long usCount = 0;
  //* Acknowledge interrupt status
  dummy = TC_pt->TC_SR;
  //* Suppress warning variable "dummy" was set but never used
  dummy = dummy;
  DelayFlag = 1;
  MOV_PWM(); //вызываю требуемую ф-цию
}

Решил прописать вызов MOV_PWM() прямо в обработчике - срабатывает моментально, не дожидаясь окончания заданного интервала ( UTIL_DelayTimeInUs(6000000); задержка должна быть 6с!). если же убрать MOV_PWM из обработчика и прописать
Код
UTIL_DelayTimeInUs(6000000);
MOV_PWM();

то MOV_PWM() вообще не вызывается, подскажите пожалуйста, в чем проблемма.

Сообщение отредактировал huntero4ek - Jun 16 2009, 07:19
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- huntero4ek   DS18b20   May 25 2009, 14:41
- - HARMHARM   Читаете это и это. Остается заменить код, который ...   May 25 2009, 16:15
- - huntero4ek   Спасибо конечно, но это опять таки программа для A...   May 25 2009, 17:42
- - huntero4ek   Ну если никто не хочет предоставить готовую подпро...   May 26 2009, 12:48
- - Deka   ЦитатаНу если никто не хочет предоставить готовую ...   May 27 2009, 05:18
|- - huntero4ek   Еще раз убеждаюсь в "полезности" форумов...   May 27 2009, 16:47
|- - zltigo   Цитата(huntero4ek @ May 27 2009, 19:47) Е...   May 27 2009, 18:09
|- - aaarrr   Цитата(huntero4ek @ May 27 2009, 20:47) П...   May 27 2009, 18:39
|- - huntero4ek   Цитата(aaarrr @ May 27 2009, 21:39) огда ...   May 27 2009, 21:10
|- - zltigo   Цитата(huntero4ek @ May 28 2009, 00:10) Д...   May 27 2009, 22:27
|- - sergeeff   Цитата(huntero4ek @ May 28 2009, 00:10) М...   May 28 2009, 05:53
|- - aaarrr   Цитата(huntero4ek @ May 28 2009, 01:10) М...   May 28 2009, 07:27
- - huntero4ek   если это норм явление, что при висячей ноге на ней...   May 28 2009, 08:50
|- - aaarrr   Цитата(huntero4ek @ May 28 2009, 12:50) е...   May 28 2009, 09:06
- - huntero4ek   Извините, но я не совсем понял, эти строки кода вз...   May 28 2009, 09:28
- - aaarrr   Нет, из головы. При чем тут IAR?   May 28 2009, 09:32
- - huntero4ek   Вот написал пару функций для работы с DS18B20 Посм...   Jun 2 2009, 22:05
|- - aaarrr   Цитата(huntero4ek @ Jun 3 2009, 02:05) Мо...   Jun 3 2009, 07:55
||- - huntero4ek   Цитата(aaarrr @ Jun 3 2009, 10:55) Логичн...   Jun 3 2009, 08:26
||- - aaarrr   Цитата(huntero4ek @ Jun 3 2009, 12:26) Т....   Jun 3 2009, 08:33
||- - huntero4ek   Значит подчиненный способен завалить ногу в 0 даже...   Jun 3 2009, 08:36
|- - _Pasha   Цитата(huntero4ek @ Jun 3 2009, 01:05) Во...   Jun 3 2009, 08:07
- - aaarrr   Естественно.   Jun 3 2009, 09:09
|- - aaarrr   Цитата(huntero4ek @ Jun 16 2009, 11:17) Р...   Jun 16 2009, 08:06
|- - _Pasha   Цитата(aaarrr @ Jun 16 2009, 11:06) Навер...   Jun 16 2009, 08:10
|- - aaarrr   Цитата(_Pasha @ Jun 16 2009, 12:10) dummy...   Jun 16 2009, 08:13
- - huntero4ek   таймеры 16-битные, поэтому переделал ф-цию: Кодvoi...   Jun 17 2009, 19:12
|- - aaarrr   Цитата(huntero4ek @ Jun 17 2009, 23:12) п...   Jun 17 2009, 19:44
- - huntero4ek   т.е. формировать задержки порядка 5мкс - с помощь...   Jun 17 2009, 19:48
|- - aaarrr   Цитата(huntero4ek @ Jun 17 2009, 23:48) т...   Jun 17 2009, 19:53
- - huntero4ek   Чет не совсем понятно что такое поллинг...   Jun 19 2009, 11:04
- - aaarrr   Опрос типа while(!(TC_SR & FLAG));   Jun 19 2009, 11:16
- - huntero4ek   Был бы очень благодарен за тестовый примерчик, с э...   Jun 20 2009, 20:38
- - aaarrr   Нет, примерчика не будет. А что касается задержек ...   Jun 20 2009, 20:54


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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 18:38
Рейтинг@Mail.ru


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