Страниц (4): « 1 2 [3] 4 » |
|
Без описания |
Поиск в теме | Версия для печати |
Blitzkrieg |
Отправлено: 02 Февраля, 2009 - 11:22:57
|
Лейтенант
Сообщений всего: 33
Дата рег-ции: Янв. 2009
|
бот_м_16 пишет:Кстати есть хорошая книга по PICBasic - "Програмирование PIC микроконтролеров на PICBasic" автор Чак Хелибайк я по ней начинал
Есть такая, но чет не проперла совершенно. Я ее не всю читал, но в части описания функций можно ее смело пропустить, вполне хватит хелпа в microcodestudio.
У него там есть вконце код датчик крутится сервомашинкой. используется Pulsout воще полный бред, такое ощущение что он вопсче не проверял сей код :-) Функцией пулсоут он может задать только длительность имульса (т. е. время включения порта). А у сервомашинок нужно соблюдать период в 20 милисекунд, то есть включил порт на 1500 мкс, выключи его на 18500 мкс иначе нанэй, вощем я сделал как он, серва не двигается, потом подумал подправил как должно быть, тот же результат. Думал даж купить себе эту книжку в аналоговом варианте, но вощем-то правильно не потратил 500 рублей :-) Возможно про устройство микроконтроллера он дело пишет, пока еще не читал.(Отредактировано автором: 02 Февраля, 2009 - 11:29:01) |
|
|
VCOM |
Отправлено: 02 Февраля, 2009 - 21:17:08
|
Супермодератор
Сообщений всего: 659
Дата рег-ции: Март 2007
|
Где вы их откапываете? МикроСи, ПикБасики какието... Папробуйте один раз ИАР! И будет пофигу ваще под че писать что под пик, что авр, что арм, что 51... И еще всякая экзотика там имееца. Единственно чего нету эт Моторолла 68hc908. Оптимизация офигенная, народу пишет дофига, всякие примеры есть... Чо исчо нада? Вай! Токачто зашел, щас и для 908 есть! Если кто не в курсе www.iar.com
(Добавление)
Гы гы Они PIC16, Z80, HC11 и Intel196 уже на свалку отправили Ж)))) Ну последние три понятно, типа ветераны... А пик интересно за что Ж)))) |
|
|
VCOM |
Отправлено: 03 Февраля, 2009 - 20:33:20
|
Супермодератор
Сообщений всего: 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 не кросавчег!? |
|
|
|
Поиск в теме | Версия для печати |
Страниц (4): « 1 2 [3] 4 » |
« Программирование микроконтроллеров » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|
|
|