Краткий Курс программирование AVR - часть 8

 
1 6 7 8 9 10 11 12

SiNil

новичок
А есть какие-нибудь классы, желательно для борланда, для работы с ком портом, а то через вин апи не шибко получается...?
Заранее спасибо!

Ага, всё, нашел по памяти. Всем рекомендую, хотя здесь скорее всего уже проскакивало:)

rs232.ru
 
Это сообщение редактировалось 16.01.2006 в 22:40
RU termostat #17.01.2006 11:24
+
-
edit
 

at90

новичок
Вот прикольная платка от Olimex на sam7s

AT91SAM7S64 HEADER DEVELOPMENT PROTOTYPE BOARD

AT91SAM7S64 development prototype board for SAM7S64

// www.olimex.com
 

Стоит около 37$ d терраэлектронике
 

GOGI

координатор
★★★★
Вопрос: у АВРок ноги под программирование делят функции с портами. У маленьких ног мало и не желательно оставлять 3 ноги не занятыми. У Атмела сказано, что в этом случае внешние цепи нужно подключать через резисторы. А если мне ток нужно выдать? Да еще и сразу после ресета. Не повредит ли это программатору (я пользуюсь атмеловским ISP)?
1  
RU termostat #18.01.2006 23:18
+
-
edit
 

termostat

аксакал

Вопрос: у АВРок ноги под программирование делят функции с портами.

У Атмела сказано, что в этом случае внешние цепи нужно подключать через резисторы.

А если мне ток нужно выдать? Да еще и сразу после ресета.

Не повредит ли это программатору (я пользуюсь атмеловским ISP)?
 


Ну ваааще ...

вопрос - ответ прям!

========

написано делай!

чтоб не повредилось ни чего резисторов по 300 Ом достаточно, при этом будут включаться светодиоды и полевики например.

Но не малы ли они для не влияния на программирование ?
Сумлеваюсь.

GOGI

координатор
★★★★
Так ведь страшно за программатор, поэтому и сомневаюсь. Хотя, в любой момент можно перейти на 5 проводков на LPT :-)
1  
RU termostat #19.01.2006 11:07
+
-
edit
 

pokos

аксакал

А беречь именно LPT надо.
 

Истинно! Я вот, себе в нотбуке спалил (заодно с ПС\2) по дури, теперь не знаю, вкурит ли мою Атмегу8 родной же ISP....
 

GOGI

координатор
★★★★
Нет, резистора у меня не будет, потому как часть схемы, подключаемая к этим портам - отключаемая.
Я хочу к разъему ISP подключать колодку со светодиодами, чтобы перед запуском проверять работу альтиметра.
1  

GOGI

координатор
★★★★
Вот подумал я и решил, что лучше все-таки использовать внешний АЦП, по той простой причине, что когда дорожки на плате выгорают - никакие TVSы не спасут. Как лучше сделать поставить несколько полноценных каналов с ОУ, защитой и АЦП (несколькими или одним многоканальным) или или одну цепь с последовательной коммутацией к ней четырех входов. Частота дискретизация небольшая, скорости хватит с запасом? Какие могут быть проблемы?
И еще вопрос. Почитал тут несколько книжек по ОУ, правда, талмуд электронщиков "Искусство схемотехники" пока не скачал. Нигде не пишут, какого порядка должно быть сопротивление в обратной связи? Или вообще любого, от Омов до Мегаомов и важно только отношение сопротивлений?
Плюс, совершенно не знаю, как выбрать операционник. Их такая куча разных выпускается, может кто проведет очень краткий ликбез?
1  
+
-
edit
 

Nierika

новичок
Собрал домашний бытовой микро-цампутер :) на базе mega16 для самых разнообразных целей. измерение температуры, термостат, таймеры, будильники и прочее. В очередной момент мне понадобились весы. И вот я подумал: а не прикрутитьь ли мне на это устройство весы? Ведь делают же электронные весы. Стал искатьь по тензо-датчикам, но какой-0либо цельной инфы так и не нашёл. Может быть кто-то тут имел опыт разработки весов с AVRISK?
Измерительные способности я поставил так: цена деления - 0,1 гр, максимальный вес - 1-5кг. Тяжести можно и более грубыми весами взвесить, а вот с тонкими взвешиваниями как раз вопросец и вышел.
Форум ракетомодельный, наверняка разные реактивы приходится взвешиватьт - может ктоо-то решил вопрос? или куда мне пройти хотя бы с таким вопросом? 8-)

Я так понимаю, мне нужен тензорезистор. И, вероятно, не 1, а 4 - для моста. Всё. Конкретнее я ничего не понял. :) Хотя бы название подходящего для такого диапазона взвешиваний элемента найти - я бы по даташитам что-нить мог бы понять. :)
 
RU Клапауций #24.01.2006 09:55
+
-
edit
 

Клапауций

координатор
★★☆
вот тут - где купить датчики - довольно любопытный список поставщиков разного рода датчиков, в том числе там и тензорезисторы проскакивают

по технической информации :
есть на ООО "Веда"
есть на Тензокоме
В тот день, когда ты решишь, что ты лишен недостатков , попробуй прогуляться по воде  
RU termostat #24.01.2006 11:33
+
-
edit
 

termostat

аксакал

когда дорожки на плате выгорают - никакие TVSы не спасут.
 


дык их нужно прям на вход ставить, а перед ними резистор на 10 Ом.

Как лучше сделать поставить несколько полноценных каналов с ОУ, защитой и АЦП (несколькими или одним многоканальным)
 


самое простое поставить легко впаиваемый 4х канальный ОУ за 1 доллар на самый вход и в случае чего просто заменить его, можно в панельку поставить.


Почитал тут несколько книжек по ОУ, правда, талмуд электронщиков "Искусство схемотехники" пока не скачал.

совершенно не знаю, как выбрать операционник. Их такая куча разных выпускается,

может кто проведет очень краткий ликбез?
 



Стал искатьь по тензо-датчикам, но какой-0либо цельной инфы так и не нашёл.

Я так понимаю, мне нужен тензорезистор. И, вероятно, не 1, а 4 - для моста. Всё. Конкретнее я ничего не понял. :)

Хотя бы название подходящего для такого диапазона взвешиваний элемента найти - я бы по даташитам что-нить мог бы понять. :)
 


Ну вы ваааще!

как всегда: перечитайте 1-ю страницу курса и все прояснится!

Не изобретайте велосипед - делайте так как сделано до вас.









RU Андрей Суворов #24.01.2006 11:55
+
-
edit
 

Андрей Суворов

координатор

Ну вы ваааще!

как всегда: перечитайте 1-ю страницу курса и все прояснится!

Не изобретайте велосипед - делайте так как сделано до вас.
 


Да там основная засада не в тензорезисторе, а в упругом элементе...
 
+
-
edit
 

Alex870

новичок
Здравствуйте!
Кто пишет в CodeVision подскажите пожалуйста. Мне нужно передать в массив символов значение float в виде строки.
Если я пишу так:

unsigned char a = 100;
char *s[13];
sprintf(s,"Значение: %d",a);

все работает, в s попадает строка "Значение: 100", а если я пишу:

float a = 0.5;
char *s[13];
sprintf(s,"Значение: %f",a);

то в s только строка "Значение: ". У меня версия 1.24.6 standart. Есть подозрение, что stdio этой версии не поддерживает преобразование значений с плавающей точкой. Как быть? может из более новой версии скопировать, если так, то что копировать, а может я че не так делаю?
So far, so good, so what...  
Это сообщение редактировалось 24.01.2006 в 13:45
RU termostat #24.01.2006 14:32
+
-
edit
 
RU termostat #24.01.2006 15:52
+
-
edit
 

termostat

аксакал

Мне нужно передать в массив символов значение float в виде строки.
 


в хелпе рекомендуют проверить - Configure Project закладку Code Generation

там по умолчанию int вроде стоит.



Почитал тут несколько книжек по ОУ,
 


вот про ОУ



резисторы как в ДШ и АпНоутах

+
-
edit
 

Alex870

новичок
в хелпе рекомендуют проверить - Configure Project закладку Code Generation

там по умолчанию int вроде стоит.
 


Спасибо, когда хэлп читал не обратил внимание на первую строчку. Попробовал изменить настройки, размер тестового проекта вырос больше чем в 2 раза. Был 1104 слов, стал 2435 слов. Нафига такое счастье, я лучше сам функцию преобразования в строку напишу, для целых уже написал.
So far, so good, so what...  
Это сообщение редактировалось 24.01.2006 в 17:29
RU termostat #24.01.2006 20:37
+
-
edit
 

termostat

аксакал

Был 1104 слов, стал 2435 слов.

Нафига такое счастье, я лучше сам функцию преобразования в строку напишу, для целых уже написал.
 


Хозяин == барин ! на АСМе наверно еще компактней будет, а за удобство платить приходится.
+
-
edit
 

Alex870

новичок
Здравствуйте!
Уважаемый termostat я конечно понимаю, что уже достал со своими мелочами, но следующий вопрос не освещен в вашем курсе.
Мне нужно передать в функцию значение типа float, пишу простейший код:

code text
  1. ...
  2. char MyFunc(float val)
  3. {
  4.  if (val == 123.45) return 1; else return 2;
  5. }
  6.  
  7. void main(void)
  8. {
  9. float *h;
  10. Init();       //Инициализация устройств
  11. h = 123.45;
  12. PORTA = MyFunc(h);
  13. while (1)
  14.       {
  15.  
  16.       }
  17. }


В результате чего в порт А попадает 2, т.е. val не равно 123.45. Мне стало интересно и дабы исключить непредвиденные ошибки я воспользовался последовательными приближениями и подобрал число. Т.е. если в функции MyFunc написать
if (val == 58982) return 1; else return 2;
то результат такого сравнения будет положительным, т.е. вернет 1. Поясните пожалуйста почему так и где почитать, как правильно работать с типом float. В хэлпе почти ничего нет, в примерах к CV этот вопрос тоже игнорируют.
И еще, если число h в функции main я задаю целым, в смысле float, но например 123, то все нормально.
So far, so good, so what...  
Это сообщение редактировалось 27.01.2006 в 10:28
+
-
edit
 

Shurka

новичок
вопрос к задаче №7 (про прикручивание флешки) откомпелировал с кристалом Мега8515 предварительно заменив include + в ф-ции пересылки по UART регистр...далее изменил
while (last_byte_page [ 10)
{
dumb_data = 0;
ctr = 0;

while (ctr[528)
{
dumb_data=getchar();
write_to_flash(dumb_data);
//dumb_data++;
ctr++;
}

}
во время работы (при выводе результатов) получаю массу ошибок....
делал на входную запись буфер размером 128 байт - не помогает. посоветуйте пожалуйста как справится с этой задачей
 
RU termostat #27.01.2006 11:50
+
-
edit
 

termostat

аксакал

Здравствуйте!
Уважаемый termostat следующий вопрос не освещен в вашем курсе.
 



1) как работать с float есть конечно в литературе по Си - она рекомендована на стр 5 курса !

2) почему в объявлении переменной стоит знак * вот так: float *h; - т.е. объявлена не перменная а указатель на нее, а он по моему равен адресу по которому компилятор разместит переменную при компиляции - т.е. нам не известен.

3) если val == 58982 возвращает "истину", значит в регистрах где находится val содержится такаяже комбинация 1-ц и 0-лей как и в регистрах с числом 58982

4) вобщем попробуй объявить float h;



вопрос к задаче №7 (про прикручивание флешки) откомпелировал с кристалом Мега8515 предварительно заменив include
 


в курсе написано - нужно еще в свойствах проекта указать компилятору какой процессор используется.

и посмотри АпНоут миграция с 8515 на мега8515 - может есть хитрости.

Проверь однофункциональны ли ножки 8535 и твоей меги ?

GOGI

координатор
★★★★
Термостат, если уж ты так озабочен находимостью твоего сайта поисковиками (судя по ключевым словам внизу каждой страницы :-), сделай все-таки нормальную навигацию. А то у тебя из некоторых задач на другие вообще нельзя перейти.
1  
RU termostat #27.01.2006 18:21
+
-
edit
 
1 6 7 8 9 10 11 12

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru