![]() |
|
|
#21 |
|
Senior Member
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 800 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Специально проверил, скачал только что из первого поста. Arduino 1.0.3 компилирует оба примера из поста 17, без всяких вопросов
|
|
|
|
|
|
#22 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Спасибо за помощь!
|
|
|
|
|
|
#23 |
|
Junior Member
Регистрация: 24.11.2012
Адрес: Новосибирск
Сообщений: 14
Вес репутации: 0 ![]() |
Работает всё хорошо
Покручу ещё, если обнаружу что-то интересное - отпишусь. Трудно переоценить полезность библиотеки nanopins.h, позволяющей даже неподготовленным любителям оптимизировать работу своих устройств, приближая к коммерческому уровню. Большое спасибо, за помощь и науку. С уважением , fot . Последний раз редактировалось fot; 12.03.2013 в 08:50. |
|
|
|
|
|
#24 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Попробуй по новой скачай nanopins, я внес изменения в An_Read
|
|
|
|
|
|
#25 |
|
Junior Member
Регистрация: 24.11.2012
Адрес: Новосибирск
Сообщений: 14
Вес репутации: 0 ![]() |
Проверил входы, покрутил в работе с
контроллером - мотор стабилен во всём диапазоне. Индикация батареи и оборотов показывает точно и независимо, Всё в норме. Потенциометр не шумит . Последний раз редактировалось fot; 12.03.2013 в 08:49. |
|
|
|
|
|
#26 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Спасибо!
|
|
|
|
|
|
#27 |
|
Junior Member
Регистрация: 24.11.2012
Адрес: Новосибирск
Сообщений: 14
Вес репутации: 0 ![]() |
Всегда !
Последний раз редактировалось fot; 12.03.2013 в 08:49. |
|
|
|
|
|
#28 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Обновил библиотеку 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сек.
}
|
|
|
|
|
|
#29 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Добавил функцию 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);
}
|
|
|
|
|
|
#30 | |
|
Member
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0 ![]() |
Цитата:
Сильно не вдавался в алгоритм реализации данных функций, но они вроде как уже реализованы в стандартной бибилиотеке GCC/avr-libc. Цепляются через <util/delay.h> А вот функция получения времени в мили(микро)секундах с автоматическим расчетом относительно заданной F_CPU без использования ардуиновской библиотеки было бы удобно. такой функции в avr-libc я не нашел. |
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|