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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> 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
HARMHARM
сообщение May 25 2009, 16:15
Сообщение #2


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Читаете это и это. Остается заменить код, который UART обслуживает.
Go to the top of the page
 
+Quote Post
huntero4ek
сообщение May 25 2009, 17:42
Сообщение #3





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



Спасибо конечно, но это опять таки программа для AVR. Думаю для Вас не составит написать программу по даташит или переделать программу, написанную под AVR, но для меня это вызывает некие трудности. Поэтому очень хотелось бы увидеть конкретную реализацию программы опроса термодатчика для AT91SAM7, которая опробована в действии) Заранее спасибо
Go to the top of the page
 
+Quote Post
huntero4ek
сообщение May 26 2009, 12:48
Сообщение #4





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



Ну если никто не хочет предоставить готовую подпрограмму, тогда вопрос:
Для опроса датчика необходимо конкретное время держать логические уровни (writebit0 - 60us и т.п.). Вопрос: каким образом лучше реализовать точное время удержания уровня, кажый раз включая таймер? У меня в проэкте уже задействованы 3 таймера из 3 (1 - управеление соннарами, другой - передача информации по радиоканалу, 3 - собственно опрос термодатчика). Спасибо
Go to the top of the page
 
+Quote Post
Deka
сообщение May 27 2009, 05:18
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Цитата
Ну если никто не хочет предоставить готовую подпрограмму, тогда вопрос
Вам уже предоставили основу по которой можно сделать то, что Вам нужно.
Цитата
У меня в проэкте уже задействованы 3 таймера из 3
Я так понимаю, что таймеры задействованы теми кусками кода, которые Вам тоже кто-то дал специально для Вашего ARM? laugh.gif
И ещё я думаю, что Вам надо в ветку поиска разработчиков написать. Они Вам всё и увяжут. И таймеры и сонары и термодатчики!
Go to the top of the page
 
+Quote Post
huntero4ek
сообщение May 27 2009, 16:47
Сообщение #6





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



Еще раз убеждаюсь в "полезности" форумов. Принцип "научился сам - поумничаю над другими" работает исправно wink.gif Если же все так просто, то почему до сих пор никто не выложил готовый исходник опроса термодатчика под ARM? )) Под AVR люди поотзывчивее (или просто они на рынке дольше)) Ну с этим ладно. По поводу сонаров, то вы глубоко ошибаетесь - все пишу сам. Под PIC и МК51 было писать немнго приятнее. Большое спасибо за ссылки на стандартные даташит.
P.S. Если ничем дельным помочь не можете, плз, не пишите вообще.

P.P.S. И напоследок как всегда вопрос (может слишком простой, но я только учусьwink.gif):
настраиваю ногу МК на вход.
Код
#define RSON          (1<<20)
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA );
AT91F_PIO_CfgInput(AT91C_BASE_PIOA, RSON);

void timer0_c_irq_handler(void)
{
    AT91PS_TC TC_pt = AT91C_BASE_TC0;
    //* Acknowledge interrupt status
    dummy = TC_pt->TC_SR;
    if(BarFlag){
          if((AT91F_PIO_GetInput( AT91C_BASE_PIOA)& RSON)==RSON){
            BarFlag=false;
            at91_IRQ0_barrier_pwm();
          }
     }
}

при этом, at91_IRQ0_barrier_pwm(); вызывается постоянно, даже в том случае, когда к RSON не подсоединено ничего.
В чем может быть проблема? Подскажите, пожалуйста

Сообщение отредактировал huntero4ek - May 27 2009, 16:49
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 27 2009, 18:09
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(huntero4ek @ May 27 2009, 19:47) *
Если же все так просто, то почему до сих пор никто не выложил готовый исходник опроса термодатчика под ARM?

Значит так, мил человек, по одной простой причине, если смотреть на "проблему" не из под плинтуса, то исходники "для ARM" отличаются от исходников "для AVR", не более, чем чернила для 3 класса от чернил для 10 класса. А с DS18B20 "исходниками" вообще десятки сообщений на форуме. Только читать и учиться уметь надо. Именно по этой причне тема вообще в оффтопик перенесена.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 27 2009, 18:39
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(huntero4ek @ May 27 2009, 20:47) *
Под AVR люди поотзывчивее (или просто они на рынке дольше)

Рынок халявных исходников - это что-то новое. А форум существует отнюдь не для раздачи готовых решений страждущим, и так общий уровень катастрофически низок.

Цитата(huntero4ek @ May 27 2009, 20:47) *
при этом, at91_IRQ0_barrier_pwm(); вызывается постоянно, даже в том случае, когда к RSON не подсоединено ничего.

Когда "ничего не подключено", логический уровень на ноге какой?
Go to the top of the page
 
+Quote Post
huntero4ek
сообщение May 27 2009, 21:10
Сообщение #9





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



Цитата(aaarrr @ May 27 2009, 21:39) *
огда "ничего не подключено", логический уровень на ноге какой?

Мерял тестером - там всегда +3.3, что меня настораживает. Подскажите как правильно настроить ногу на вход.
Цитата
А с DS18B20 "исходниками" вообще десятки сообщений на форуме.

Дайте хоть 1 ссылку на эти сообщения, вместо 50 лишних слов. Я не очень силен в программировании под ARM, если для кого-то все легко, то я искренне рад за него. Надеюсь, когда научусь работать с ARM, то буду доступнее объяснять таким "чайникам" как сам. Спасибо

Сообщение отредактировал huntero4ek - May 27 2009, 22:01
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 27 2009, 22:27
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(huntero4ek @ May 28 2009, 00:10) *
Дайте хоть 1 ссылку на эти сообщения

http://www.google.com/search?client=opera&...-8&oe=utf-8
Цитата
Я не очень силен в программировании под ARM....

Вы заблуждаетесь насчет не ARM-ов sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sergeeff
сообщение May 28 2009, 05:53
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(huntero4ek @ May 28 2009, 00:10) *
Мерял тестером - там всегда +3.3, что меня настораживает. Подскажите как правильно настроить ногу на вход.



Анекдот:
Приходит пациент к врачу. Говорит: "У меня проблема". Врач: "Какая?". Пациент:"Сейчас сами увидете" и начинает медленно раздеваться и аккуратнейшим образом вещи складывать на стуле. Через 15 минут, раздевшись "Видите доктор - у меня одно яичко больше другого!"
Доктор, в сердцах:"Черт возьми, да так и должно быть!"

Это я к тому, что на "висящем" входе всегда "1".
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 28 2009, 07:27
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(huntero4ek @ May 28 2009, 01:10) *
Мерял тестером - там всегда +3.3, что меня настораживает. Подскажите как правильно настроить ногу на вход.

Прочитайте про pull-up'ы в даташите. По умолчанию они включены, а на SAM7 сопротивление у них весьма низкое, чтобы перетянуть нужен резистор <1кОм.
Go to the top of the page
 
+Quote Post
huntero4ek
сообщение May 28 2009, 08:50
Сообщение #13





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



если это норм явление, что при висячей ноге на ней лог уровень "1", то какой же уровень там будет, если подать туда "1" с внешнего устройства??
Либо ответьте сами, либо подскажите ГДЕ можно норм почитать о настраивании ноги на вход? В даташит:
Цитата
Все порты ввода-вывода PA0…PA31 (PA0…PA20 в AT91SAM7S32) полностью совместимы с 5-вольтовыми логическими уровнями и все имеют внутренние подтягивающие резисторы к VDDIO. Возможно индивидуальное отключение/подключение этих резисторов к каждому их портов с помощью контроллера портов ввода-вывода (PIO).

Совместимость с 5-вольтовыми логическими уровнями означает, что порты ввода-вывода способны формировать выходное напряжение до VDDIO и иметь входное напряжение до 5,5В. Однако, формирование на этих выводах внешнего напряжения более VDDIO с подключенными внутренними подтягивающими резисторами вызовет протекание внешнего тока через от этих выводы через подтягивающие резисторы к VDDIO. Это необходимо принимать во внимание, так как сразу после сброса по умолчанию все подтягивающие резисторы подключены к выводам портов.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 28 2009, 09:06
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(huntero4ek @ May 28 2009, 12:50) *
если это норм явление, что при висячей ноге на ней лог уровень "1", то какой же уровень там будет, если подать туда "1" с внешнего устройства??

"1" и будет, куда он денется?

Цитата(huntero4ek @ May 28 2009, 12:50) *
Либо ответьте сами, либо подскажите ГДЕ можно норм почитать о настраивании ноги на вход? В даташит:

В DS (родном, естественно, а не переводе) все отлично описано, что еще нужно?

Код
PIO_ODR = x;   // Переключили вывод на вход
PIO_PPUDR = x; // Запретили pull-up (если нужно)
PIO_IFER = x;  // Включили фильтр (если нужно)
PIO_PER = x;   // Перевели ногу на PIO
Go to the top of the page
 
+Quote Post
huntero4ek
сообщение May 28 2009, 09:28
Сообщение #15





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



Извините, но я не совсем понял, эти строки кода взяты из документации по IAR 4.2?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 07:46
Рейтинг@Mail.ru


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