05.03.2013, 08:54 | #21 |
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799 |
Специально проверил, скачал только что из первого поста. Arduino 1.0.3 компилирует оба примера из поста 17, без всяких вопросов
|
05.03.2013, 11:19 | #22 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Спасибо за помощь!
|
06.03.2013, 06:38 | #23 |
Junior Member
Регистрация: 24.11.2012
Адрес: Новосибирск
Сообщений: 14
Вес репутации: 0 |
Работает всё хорошо
Покручу ещё, если обнаружу что-то интересное - отпишусь. Трудно переоценить полезность библиотеки nanopins.h, позволяющей даже неподготовленным любителям оптимизировать работу своих устройств, приближая к коммерческому уровню. Большое спасибо, за помощь и науку. С уважением , fot . Последний раз редактировалось fot; 12.03.2013 в 08:50. |
06.03.2013, 14:46 | #24 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Попробуй по новой скачай nanopins, я внес изменения в An_Read
|
06.03.2013, 15:56 | #25 |
Junior Member
Регистрация: 24.11.2012
Адрес: Новосибирск
Сообщений: 14
Вес репутации: 0 |
Проверил входы, покрутил в работе с
контроллером - мотор стабилен во всём диапазоне. Индикация батареи и оборотов показывает точно и независимо, Всё в норме. Потенциометр не шумит . Последний раз редактировалось fot; 12.03.2013 в 08:49. |
06.03.2013, 16:04 | #26 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Спасибо!
|
06.03.2013, 16:07 | #27 |
Junior Member
Регистрация: 24.11.2012
Адрес: Новосибирск
Сообщений: 14
Вес репутации: 0 |
Всегда !
Последний раз редактировалось fot; 12.03.2013 в 08:49. |
06.03.2013, 18:31 | #28 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Обновил библиотеку nanopins в шапке темы.
добавил функции delay_us() и delay_ms() Функции delay_us() и delay_ms() можно применять в прерываниях так как они не используют таймер, но следует не забывать что точность этих функций зависит от использования в коде обработчиков прерываний. Если Вы не используете в коде прерывания то и точность будет высокая delay_us(n); //где n - задержка в мкс, максимальная задержка может быть не больше 16000мкс delay_ms(n); //где n - задержка в мс, максимальная задержка может быть не больше 65000мс это равно 65сек Пример использования Код:
#include <nanopins.h> char message[] = " CarDuino "; void setup() { UART_Init(115200); } void loop() { for(uint8_t i=0; i<strlen(message); i++) { UART_SendByte(message[i]); if(i>8) UART_SendByte(DecToChar(i)); } delay_ms(10000); //пауза 10сек. } |
07.03.2013, 00:27 | #29 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823 |
Добавил функцию UART_SendArray(array, size array):
array-имя вашего массива size array-число отправляемых байт массива Функция отправляет в UART порт, массив типа байт, максимальный объем которого не должен превышать 65535 байт, минимальный объем массива 1 байт Можно также отправлять часть массива Приер использования функции: Код:
#include <nanopins.h> uint8_t message[] = "Cyber-Place "; //массив размером 12байт void setup() { UART_Init(115200); //инициализация } void loop() { UART_SendArray( message, 12); //отправить в UART порт, массив размером 12 байт delay_ms(1000); //пауза 1сек. } Для сравнения такой же код(пример ниже), только с использованием встроенной функции Serial.write использует 1592 байта Код:
uint8_t message[] = "Cyber-Place "; //массив размером 12байт void setup() { Serial.begin(115200); } void loop() { Serial.write(message, 12); delay(1000); } |
07.03.2013, 14:00 | #30 | |
Member
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0 |
Цитата:
Сильно не вдавался в алгоритм реализации данных функций, но они вроде как уже реализованы в стандартной бибилиотеке GCC/avr-libc. Цепляются через <util/delay.h> А вот функция получения времени в мили(микро)секундах с автоматическим расчетом относительно заданной F_CPU без использования ардуиновской библиотеки было бы удобно. такой функции в avr-libc я не нашел. |
|
Здесь присутствуют: 21 (пользователей: 0 , гостей: 21) | |
|
|