Немного повозившись со своим sketch-ем, я пришел к выводу, что не работает инициализация однопроводной шины. Внимательно присмотрелся - а там стоял вызов PulseIn:
if (!pulseIn(dataPin,HIGH,70)) return false;
if (!pulseIn(dataPin,LOW,280)) return false;
Прочитал внимательно релиз-ноты, вот что изменилось:
Modifying pulseIn() to wait for a transition to start timing (i.e. ignoring any pulse that had already started when the function was called)
То есть, говоря по-русски, теперь PulseIn ждет начала импульса, и злостоно игнорирует ситуацию, когда ожидаемый уровень уже установлен (не запускает таймер). Заменил на строчку:
pulseIn(dataPin,LOW,70);
... и всё тут же заработало! Так что релиз 0013 - вполне жизнеспособный (ну кто бы сомневался?)
Программирование Arduino, оживление микроэвм Электроника МК-90, аппаратный хакинг.
24.02.2009
17.02.2009
ATmega328P-20PU и Arduino
Пока все тривиально: прошил arduino bootloader в новенький чип ATmega328P-20PU, выбрал новый target, компильнул и залил:
Как видите, 30720 - это размер доступного пространства памяти программ (в байтах :), где теперь можно резвиться. Кстати, а почему ATMEL не выпустила до сих пор чип ATmega648P?... А ведь было бы более чем логичное продолжение такой популярной серии МК...
Как всегда, что-то я не совсем правильно написал в своей программе-градуснике (видно не зря я не спешил ее публиковать): использовал собственную (во многом интуитивную) реализацию однопроводного интерфейса. Сейчас попробую, сколько по времени будет стоить переход на существующую.
Как видите, 30720 - это размер доступного пространства памяти программ (в байтах :), где теперь можно резвиться. Кстати, а почему ATMEL не выпустила до сих пор чип ATmega648P?... А ведь было бы более чем логичное продолжение такой популярной серии МК...
Как всегда, что-то я не совсем правильно написал в своей программе-градуснике (видно не зря я не спешил ее публиковать): использовал собственную (во многом интуитивную) реализацию однопроводного интерфейса. Сейчас попробую, сколько по времени будет стоить переход на существующую.
12.02.2009
Новый target в Arduino IDE
Вот так теперь выглядит меню выбора цели компиляции sketch-а в Arduino IDE:
Действительно, добавили ATmega328P.
Кстати, один экземпляр этого чипа все-таки мне приехал, на 2 недели раньше срока - так что завтра я уже смогу опробовать свои программы на новом процессоре и поделиться ощущениями.
Хотя, чего особоенного? Ну, больше памяти...
Действительно, добавили ATmega328P.
Кстати, один экземпляр этого чипа все-таки мне приехал, на 2 недели раньше срока - так что завтра я уже смогу опробовать свои программы на новом процессоре и поделиться ощущениями.
Хотя, чего особоенного? Ну, больше памяти...
10.02.2009
Новый релиз Arduino IDE
Вышел новый Arduino IDE 0013. Список изменений весьма внушительный:
- Официальная поддержка ATmega328! Наконец-то: раньше надо было для этого брать релиз 0011 и обрабатывать напильником, но благодаря, в том числе, ladyada, оно теперь поселилось в основной ветке;
- Фиксы в Ethernet library: каждому исходящему соединению присваивается новый порт (!), больше нет проблем с использованием пинов 9 и 8 (на которых обитает неиспользуемый в Ethernet Shield кардридер);
- Добавили вывод чисел с плавающей точкой в Print;
- Новый тип word и функции word(), bitRead(), bitWrite(), bitSet(), bitClear(), bit(), lowByte(), и highByte() - ищите их на странице с расширенным списком;
- Пофиксили pulseIn, random и работу PWM на 5 и 6 пине.
Подписаться на:
Сообщения (Atom)