Технический форум по робототехнике.
=DeaD= » 07 фев 2010, 14:17
Сергей писал(а):ИМХО система сложная и мало полезная. Проще писать под камень с обычными API функциями
Это ты к чему? тема вроде называется контроллер, человек просто спросил фьюзы...

Сергей » 07 фев 2010, 14:40
Michael_K писал(а):Duhas писал(а):2Michael_K с одной стороны - да, они намутили ) с другой - а как иначе, когда нужна довольно сложная многопрофильная конфигурируемая структура ? )
Пользователю в 99% случаях нафиг не нужна "довольно сложная многопрофильная конфигурируемая структура".
Это только деду и блайндману кажется, что она нужна, и что это круто
Это я просто дополнил этот пост своим мнением.
=DeaD= » 07 фев 2010, 16:36
Тогда предлагаю проект ORFA обсуждать в другой ветке
Добавлено спустя 1 час 55 минут 4 секунды:Всё, проверил и проставил номера регистров, выложил инструкцию на страницу модуля:
[[OR-AVR-M32-D]], заодно причесал эту самую страницу.
S-T-A-L-K-E-R » 24 май 2010, 22:05
Блин, лежат на полочке контроллер и программатор, но боюсь к нему притронуться, сломать. Я научился считывать код с контроллера, но программирую пока не ахти. Пишу программки под ДОС на cpp. Где можно взять, посмотреть програмки управлением сервами, датчиками именно для этого модуля.
Зы: руки чешутся, голова скоро лопнет от идей, нужно срочно их реализовывать

=DeaD= » 24 май 2010, 22:09
в вики есть описалово с примерами программирования похожего контроллера без порта ДД и энкодеров
[[OR-AVR-M32-N]].
S-T-A-L-K-E-R » 29 май 2010, 21:23
Програмку с задейсвованием серв в примерах не обнаружил. Мне нуна программа на Си(сам на cpp пишу) с использованием серв. Чтоб было отчего отталкиваться. Желательно рабочую для этого контроллера.
ЗЫ: =DeaD= у тебя же есть этот контроллер и программки наверняка на него есть, помоги разобраться...
=DeaD= » 29 май 2010, 21:32
Я делал лайнтрейсера на этом контроллере на модифицированных сервах, вот тут есть линк на исходники:
[[OR-LT-v2]]Там блок:
uint16_t baseA=(153*2+1)*23/10; //1530us
uint16_t baseB=(156*2+1)*23/10; //1560us
OCR1A=baseA;
OCR1B=baseB;
Это управление 2 сервами через 1 таймер.
Т.е. берете инициализацию
//PWM, Phase and frequency correct, TOP=ICR1
TCCR1A=0xA0; //clear on up-counting, set on down-counting
TCCR1B=0x12; //Clock prescaler 1/8
ICR1=9216; //Set 50Hz frequency
И потом через OCR1A и OCR1B выставляете положения серв.
Например чтобы серву на OC1A выставить положение
1900мкс нужно сделать:
OCR1A=(190*2+1)*23/10;
S-T-A-L-K-E-R » 29 май 2010, 21:42
О... это сложновато для меня. Можно элементарщину, я только начинающий в мк.
=DeaD= » 29 май 2010, 21:46
Не понял, куда проще? инициализация и как рассчитать значение регистра по нужному положению сервы показано.
Добавлено спустя 24 секунды:В начале программы пишешь:
TCCR1A=0xA0; //clear on up-counting, set on down-counting
TCCR1B=0x12; //Clock prescaler 1/8
ICR1=9216; //Set 50Hz frequency
Добавлено спустя 2 минуты:А где надо выставить положение сервы на порту OC1A от 750мкс до 2250мкс пишешь (например, для положения 1534мкс):
OCR1A=1534*23/50;
Так проще?
S-T-A-L-K-E-R » 29 май 2010, 22:01
#include <ctype.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "uart.h"
int main(void)
{ TCCR1A=0xA0; //clear on up-counting, set on down-counting
TCCR1B=0x12; //Clock prescaler 1/8
ICR1=9216; //Set 50Hz frequency
OCR1A=1534*23/50;
_delay_us(15000);
}
[/code]
_______________
Я не понимаю что в этой программе написано.
Вот я хочу например подключить сервы одну на A0 другую на A1. Что в программе писать ?
=DeaD= » 29 май 2010, 22:03
Тут аппаратная генерация ШИМ - смотрите куда выведены порты OC1A, OC1B по схеме модуля.
Программная генерация будет мешать работать основной программе, ну или наоборот, основная программа ей будет мешать, короче там всё намного сложнее.
S-T-A-L-K-E-R » 29 май 2010, 22:07
=DeaD= писал(а):Тут аппаратная генерация ШИМ - смотрите куда выведены порты OC1A, OC1B по схеме модуля.
Программная генерация будет мешать работать основной программе, ну или наоборот, основная программа ей будет мешать, короче там всё намного сложнее.
OC1A, OC1B по схеме модуля-PD4 & PD5
=DeaD= » 29 май 2010, 22:08
Ну вот на них и цепляйте сервы.
S-T-A-L-K-E-R » 29 май 2010, 22:15
Т.е. программа будет выглядеть так ?
- Код: Выделить всё • Развернуть
#include "defines.h"
#include <ctype.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "uart.h"
FILE uart_str = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW);
int main(void)
{
uart_init();
stdout = stdin = &uart_str;
printf("Linetracer ready 1!\n");
DDRC=0x20;
DDRD=0x30;
_delay_ms(5000);
//PWM, Phase and frequency correct, TOP=ICR1
TCCR1A=0xA0; //clear on up-counting, set on down-counting
TCCR1B=0x12; //Clock prescaler 1/8
ICR1=9216; //Set 50Hz frequency
uint16_t baseA=(153*2+1)*23/10;
uint16_t baseB=(156*2+1)*23/10;
OCR1A=baseA;
OCR1B=baseB;
}
Добавлено спустя 1 минуту 18 секунд:Так мне вашу программу полностью загрузить в мк без изменений ?
Добавлено спустя 5 минут 19 секунд:На всякий случай, сервы у меня HXT12K, программатор за 400 ру, OR-PROG-USB-X, КОТОРЫЙ ТОЛЬКО С kAZAMAPROGRAMMER работает.
=DeaD= » 29 май 2010, 22:28
Скомпилируйте и грузите в МК. Надеюсь умеете?
