Обсуждаем контроллеры компании Atmel.
Сб фев 09, 2019 16:58:46
:( Сколько не пытался...
Сколько н
И пытался... Русский язык выучи сначала, а потом берись за C++!
Добавлено after 16 minutes 4 seconds:<iostream> - это C++. Пример с типичным "Hello world"
А с кодом самой MVS-2017 ошибок нет. Заменен только заголовок вместо"Хелло Ворлд!"
#include "pch.h"
#include <iostream>
int main()
{
std::cout << "Die Deutsche Demokratische Republik\n";
}
Пн апр 01, 2019 09:40:19
Простой вопрос - могу ли я сдвинуть регистр (допустим порта вывода) какой то одной командой сдвига?
Или я сначала должен прочесть содержимое регистра, потом произвести модификацию содержимого, а потом записать регистр обратно?
PORTB=PORTB<<1;
Пн апр 01, 2019 10:26:56
Работа с регистром в данном случае должна произволдиться только методом чтение-модификация-запись
Пн апр 01, 2019 15:34:03
Т.е. в терминологии ASMа я должен сделать что то типа:
- Код:
IN R16, PINB;
LSL R16;
OUT PORTB, R16;
А что нибудь вроде
- Код:
LSL PORTB;
не прокатит?
Пн апр 01, 2019 16:05:10
не прокатит.
вроде я однозначно высказался...
Пн апр 01, 2019 17:09:00
PombI4 писал(а):Т.е. в терминологии ASMа я должен сделать что то типа: .....
Если PORTB не изменяется еще где-то не предсказуемо (например в обработчике прерываний), то можно PORTB не считывать, а хранить его копию в регистре (что для ЯВУ вроде как не по фэншую).
Пн апр 01, 2019 22:04:39
не прокатит.
вроде я однозначно высказался...
А чёй-то не прокатит? В avr вполне себе.
- Код:
cbi PORTADDR,BIT
Или
- Код:
sbi PORTADDR,BIT
Правда есть ограничение по адресации, I/O registers within the address
range $00 - $1F are directly bit-accessible using the SBI and CBI instructions.
Так что все что выше $1F, действительно, только чтение-модификация-запись.
А, звиняйте, что-то я про запись в порт подумал.
Сб апр 06, 2019 02:34:18
Есть ли какой мод под Visual Studio чтобы из под нее можно было для AVR писать, с симулятором разумеется и в стиле Visual Studio под с++
Сб апр 06, 2019 05:22:29
не уверен точно, но вроде изменение расширения файла с кодом в .cpp помогает
Сб апр 06, 2019 13:56:20
Есть ли какой мод под Visual Studio чтобы из под нее можно было для AVR писать, с симулятором разумеется и в стиле Visual Studio под с++
Дальше сугубо моё скромное мнение.
Просто писать - никто не мешает.
Компилировать - ищите как прикрутить avr-gcc как внешний компилятор.
Симулятор/отладка - лично я сильно сомневаюсь.
В общем, вряд-ли есть что-то готовое в духе того, что вы спрашиваете.
Сб апр 06, 2019 21:44:08
Всем привет. Подскажите по алгоритму вычисления скорости.
Я думал так: датчик срабатывает при прохождении 1 метра, соответственно раз в секунду смотрим счётчик получаем
скорость м/с, и умножив на 3,6 переводим в км/ч. Но результат измерения , как вы поняли будет , с шагом 3,6(3,6 7,2 10,8 и т.д.)
Чёт не соображу))
Вс апр 07, 2019 07:12:07
Askaryk писал(а):датчик срабатывает при прохождении 1 метра, соответственно раз в секунду смотрим счётчик
Не вижу связи между "1 метра" и "раз в секунду"
Если срабатывает датчик через каждый пройденный метр, то и замеряйте счётчик каждый метр. Получится, к примеру, 700 импульсов - одна скорость, или 702 - другая - вот и плавность результатов.
Вс апр 07, 2019 08:41:54
1) можно подгадывать интервал времени так, чтобы избавиться от дробных и неудобных коеффициентов...
2) не обязательно считать сколько импульсов прошло за единицу времени,иможно считать наоборот - сколько времени прошло между импульсами (не обязательно соседними).
Вс апр 07, 2019 11:43:49
Для WiseLord. Напишу подробнее.
Планирую собрать вело спидометр. Я хотел так:
- Датчик на колесе, один импульс на метр. Внешнее прерывание.
- Таймер, прерывание с периодом 1 сек.
- Раз в сек, смотрим количество импульсов. Соответственно это метров в секунду.
- Перевод в км/ч умножив на 3.6.
Результат скорость с шагом 3.6.
Для Ivanoff-iv. Не совсем понял, если смогу вычислить время между импульсами, как выразить скорость?
Вс апр 07, 2019 12:13:36
Если длинна окружности, на которой установлен датчик равна предположим метру, то если измерять время между импульсами от датчика можно вычислить скорость. Например, за 1 секунду у нас один импульс, то мы перемещаемся на 1 метр в секунду.
з.Ы. либо замерить путь пройденный между импульсами датчика, потом использовать это значение в вычислении скорости.
Последний раз редактировалось
СКАЗОЧНИК Вс апр 07, 2019 12:31:13, всего редактировалось 1 раз.
Вс апр 07, 2019 12:31:27
V=S/t.
Либо t=const, тогда V пропорциональна S,
Либо S=const, тогда V пропорциональна 1/t.
Добавлено after 3 minutes 17 seconds:
во втором случае значение скорости обновляется при каждом обороте колеса, только стоит предусмотреть таймер, который при остановке колеса выставит 0 на дисплее.
Вс апр 07, 2019 14:48:49
Askaryk писал(а):Не совсем понял, если смогу вычислить время между импульсами, как выразить скорость?
Не надо вычислять. Эту переменную нужно измерять, а по ней вычислять скорость.
V=S/T
S[m]=L*Nx,
где L[m]-длина окружности колеса, Nx-целое число оборотов колеса за время измерения
T=to*nox=nox/Fo,
где to-период частоты тактирования Fo, nox-число периодов частоты тактирования за время прохождения Nx.
V[м/сек]=Fo*L*Nx/nox или
10*V[км/час]=36*Fo*L*Nx/nox.
Вс апр 07, 2019 14:58:05
Не пойму, зачем привязываться к этому "раз в секунду". Запускаете таймер на, к примеру, 1000Гц, Считаете количество тактов (разница между TCNT) между двумя прерываниями от датчика на колесе, и вот готов результат с прекрасной точностью.
Кстати, в моём велосипеде окружность колеса чуть более двух метров, 1м - это странная цифра.
Вс апр 07, 2019 15:01:28
Я просто привел пример... И цифры били для упрощенного счета. ))))
Ср апр 10, 2019 01:34:53
На каком языке этот код, что не принимает MVS-2017? Находит 6 ошибок.
Ваши ошибки не имеют никакого отношения к языку. Ошибка вызваны тем, что вы неправильно выставили настройки проекта в VS. Зайдите в настройки вашего проекта и
выключите использование прекомпилированных заголовков. В таком маленьком проекте прекомпиляция заголовков не нужна.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.