2015-02-06 5 views
1

SoftwareSerial Library of Arduino не работает с клонами из ATMEGA32, так как у этого нет функции PCINT. Как последовательная связь связана с PCINT? могут ли INT-контакты ATMEGA32/16 использоваться модификацией файла SoftwareSerial.cpp?SoftwareSerial Library of Arduino, для чего ему нужен PCINT (функция смены значков).

ответ

0

До IDE 1.0. + SoftwareSerial использовался для опроса контактов Rx. Это был блок, требующий постоянной проверки обслуживания RX и ограничения качества скорости передачи. Так как NewSoftSerial заменил прежнее ПО Polled SoftwareSerial, используя PCint. Что создает прерывание при изменении RX Pin, а затем проверяет время. Это больше не блокирует и лучше эмулирует аппаратный последовательный порт, требует меньше (нет) обслуживания (или опроса).

Можно вернуться к более раннему IDE SoftwareSerial от 1. + и попытаться либо перенести его вперед, либо попытаться использовать ATmega32 в старой среде IDE. Я думал, что видел где-то переключатель DEFINE, который позволил бы ему работать в режиме опроса. Но я не могу найти его в текущих выпусках. Вероятно, он не попал в выпущенную IDE.

Или вы можете попробовать найти альтернативу SoftwareSerial. Например, tinyserial Где я вижу, это относится к 2010 году и, вероятно, потребуется некоторое обновление. Особенно на 1.5.8. Может быть, лучше повезти, попробовав его на 1.0.6

+0

Вы в Удаче !. Контакты INT0,1,2 ATmega32 могут быть сконфигурированы для генерации прерывания на Rising или Falling или Level. Таким образом, можно использовать INT0 (или другое) и в принципе (почти как) просто начать с attachInterrupt (0, myRXhandle_interrupt(), FALLING), который, в свою очередь, отделяет предыдущее прерывание и придает следующий ожидаемый спад после вызова SoftwareSerial :: handle_interrupt (). Это поймает и справится с ростом и падением бод с теми же функциями, что и PCint. – mpflaga

+0

Большое спасибо @mpflag, я на самом деле изо всех сил стараюсь в течение последних нескольких дней с этим. Я попытался установить старую серию программного обеспечения. переименовывая их как pSoftwareserial.h, pSoftwareserial.cpp и внутри .cpp-коррекции, включает в себя и «pSoftwareserial.h» Он компилируется с определенным предупреждением, но, наконец, SoftwareSerial не работал. Я немного привык к функциям mySerial.readString(), унаследованным от объекта Stream. теперь я пытаюсь использовать библиотеку под названием AltSoftSerial, но даже это не наследует объект Stream. – user45603

+0

Вы можете скомпилировать test.pde от AltSoftSerial. Я могу как для IDE 1.0.6, так и для 1.5.8. Я ожидал бы, что этот маршрут станет самым надежным, поскольку работа PJRC неплоха. – mpflaga

 Смежные вопросы

  • Нет связанных вопросов^_^