роботы робототехника микроконтроллеры


 Страниц (4): « 1 2 [3] 4 »   

> Без описания
Blitzkrieg Post Id


Лейтенант


Сообщений всего: 33
Дата рег-ции: Янв. 2009  



Я забуду микроСи как страшный сон :-) Написал на пикбэйсипро прогу чтобы два слова в две строки выводила на экран, размер hex 1100 байт. Тот же код на микроС в hex 1700.
Правда писать меньше приходится в микроС :-). А программку для плавного вращения сервомашинки из одного крайнего положения в другое написал минут за 20 безо всяких проблем.
Вощем микроСи чот совсем не пропер. Сеня займусь переводом всех примеров программок в пикбэйсикпро, посмотрю как там со всем остальным, но пока определенно впечатления наиприятнейшие :-)
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



Кстати есть хорошая книга по PICBasic - "Програмирование PIC микроконтролеров на PICBasic" автор Чак Хелибайк я по ней начинал Подмигивающий
 
 Top
Blitzkrieg Post Id


Лейтенант


Сообщений всего: 33
Дата рег-ции: Янв. 2009  



бот_м_16 пишет:
Кстати есть хорошая книга по PICBasic - "Програмирование PIC микроконтролеров на PICBasic" автор Чак Хелибайк я по ней начинал Подмигивающий

Есть такая, но чет не проперла совершенно. Я ее не всю читал, но в части описания функций можно ее смело пропустить, вполне хватит хелпа в microcodestudio.
У него там есть вконце код датчик крутится сервомашинкой. используется Pulsout воще полный бред, такое ощущение что он вопсче не проверял сей код :-) Функцией пулсоут он может задать только длительность имульса (т. е. время включения порта). А у сервомашинок нужно соблюдать период в 20 милисекунд, то есть включил порт на 1500 мкс, выключи его на 18500 мкс иначе нанэй, вощем я сделал как он, серва не двигается, потом подумал подправил как должно быть, тот же результат. Думал даж купить себе эту книжку в аналоговом варианте, но вощем-то правильно не потратил 500 рублей :-) Возможно про устройство микроконтроллера он дело пишет, пока еще не читал.

(Отредактировано автором: 02 Февраля, 2009 - 11:29:01)

 
 Top
redcat Post Id



Главнокомандующий


Сообщений всего: 387
Дата рег-ции: Янв. 2009  



На то он и басик....

Я си уважаю, написанную один раз прогу можно скомпилировать и в Линуксе и В виндоусе... и Микроконтроллер засунуть, и вообще много чего!
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



C истинная вера для AVR но с басика легче начинать PIC
 
 Top
VCOM Супермодератор Post Id



Супермодератор


Сообщений всего: 659
Дата рег-ции: Март 2007  



Где вы их откапываете? МикроСи, ПикБасики какието... Папробуйте один раз ИАР! И будет пофигу ваще под че писать что под пик, что авр, что арм, что 51... И еще всякая экзотика там имееца. Единственно чего нету эт Моторолла 68hc908. Оптимизация офигенная, народу пишет дофига, всякие примеры есть... Чо исчо нада? Вай! Токачто зашел, щас и для 908 есть! Если кто не в курсе www.iar.com
(Добавление)
Гы гы Они PIC16, Z80, HC11 и Intel196 уже на свалку отправили Ж)))) Ну последние три понятно, типа ветераны... А пик интересно за что Ж))))
 
 Top
Blitzkrieg Post Id


Лейтенант


Сообщений всего: 33
Дата рег-ции: Янв. 2009  



УЖОС
PICBASIC просто таки выморозил использованием АЦП в микросях все прозрачнее и понятнее, ближе к жизни.

(Отредактировано автором: 02 Февраля, 2009 - 23:24:44)

 
 Top
Blitzkrieg Post Id


Лейтенант


Сообщений всего: 33
Дата рег-ции: Янв. 2009  



Ребята, подскажите еще какие-нибудь компиляторы. Си нравится больше бэйсика и микро си вполне устраивает всем за исключением оптимизации кода и отсутсвием использовать переменное значение в функции dela_us delay_ms.
Микроконтроллер PIC16F887

(Отредактировано автором: 03 Февраля, 2009 - 11:54:13)

 
 Top
redcat Post Id



Главнокомандующий


Сообщений всего: 387
Дата рег-ции: Янв. 2009  



Си и Бэйсик это не компиляторы, а языки программирования.
Микро си, это кастрированый СИ. А то что у тебя не получается использовать переменную в значении - dela_us delay_ms, то язык программирования тут не причём. Это какой-то замут компилятора. Я использую WIN AVR, и пишу на СИ. Меня устраивает.
 
 Top
Blitzkrieg Post Id


Лейтенант


Сообщений всего: 33
Дата рег-ции: Янв. 2009  



Вы читаете между строк? :-) С чего вы взяли что я считаю бэйсик и си компиляторами :-)
MikroC это не кастрированный си это как раз компилятор :-D
Так вот я и спрашиваю название компилятора у которого нет ограничение на использование констант в delay_us.
Или вы выслуживаетесь? :-D
PS. читайте внимательнее. Я указал МК под который собираюсь писать. На сколько я понял WinAVR для этих целей не годится, тогда зачем вы о нем упоминаете?
Пока вы тут рассуждали я уже набрел на HI-TECH и CCS C Compiler на сонсиври советуют как раз последний и IAR как указывал выше в ушанке.

(Отредактировано автором: 03 Февраля, 2009 - 16:42:41)

 
 Top
redcat Post Id



Главнокомандующий


Сообщений всего: 387
Дата рег-ции: Янв. 2009  



Да, Что за микроконтроллер я упустил... на работе я, поэтому мельком читаю...
 
 Top
VCOM Супермодератор Post Id



Супермодератор


Сообщений всего: 659
Дата рег-ции: Март 2007  



Ога, в ушанке он такой! Ничо плохого не посоветует!
Вод всем фанатам delay_us посвещаеццо. В IARовских компиляторах есть такая функция, как __delay_cycles(unsigned long). Она описана в inavr.h ну для пиководов в inpic.h для всех остальных ищите файлы inвашаархитектура.h. Собсно этот файл подключает другой хедер- #include <intrinsics.h>.
Диапазон задержек огромный, от 1 такта до 2^32 тактов. Вод ну и соответственно чтоб получить задержку в микросекундах вам надо определить частоту вашего генератора. К примеру так:
#define Xtal=14745600
Затем чтоб получить задержку в 1 секунду пишем:
__delay_cycles(1*Xtal);
В 10 мкс
__delay_cycles(0.00001*Xtal);
Фсе просто!
Ну для пиководов я тут незнаю, так как команда выполняецца 4 такта в 16 семействе, то видимо надо писать так:
__delay_cycles(0.00001*Xtal/4); Ну или сразу частоту в 4 раза меньше задефайнить.
Хотя не факт, если тут кто есть из пиководов с Иар, проверте- напешите...
Ну и напоследок: эта функция являецца инлайновой, тобиш код функции вставляецца непосредственно в место ее вызова.
Примерчег:

PORTB=0x00;
00077E E000 LDI R16,0x00
000780 BB08 OUT PORTB,R16
__delay_cycles(500);
000782 EA06 LDI R16,0xA6
000784 950A DEC R16
000786 F7F1 BRNE 0x784
000788 C000 RJMP 0x78A
PORTB=0xFF;
00078A EF0F LDI R16,0xFF
00078C BB08 OUT PORTB,R16

0xA6 грузиццо ибо вот так оно:
ldi 1 такт
dec 1 такт * 0xA6
brne 2 такта (условие не выполняецца) * (0xA6-1)+1 такт (условие выполняецца)
rjmp 2 такт

Итого 1+1*166+2*165+1+2 = 500 Улыбка
Точно как в аптеке! Вот, ну чем IAR не кросавчег!? Подмигивающий
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



а есть ли рабочая\выличинная версия Подмигивающий ?
 
 Top
VCOM Супермодератор Post Id



Супермодератор


Сообщений всего: 659
Дата рег-ции: Март 2007  



Не нееее нееее! Злой волшебник! Ты чего это хоть? Мы люди добропорядошные, используем тока лизензионный софт!
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



Какой я плохой !!! Меня же пасадят на 6 лет минимум
 
 Top
Страниц (4): « 1 2 [3] 4 »
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru