Я занимаюсь старшим проектом, и мне нужно построчно отправить большой текстовый файл на AVR (atmega32), который будет управлять пианино с помощью ~ 36 соленоидов и сдвиговых регистров. Это нужно делать автоматически и очень быстро. Я не могу вручную ввести текст в терминале. Мне нужно отправить 3 строки, строка за строкой, на AVR и ждать между каждой строкой подтверждения для продолжения формы AVR.
213, 25, ON
321, 25, OFF
521, 36, ON --> что означает воспроизведение ноты C в момент времени = 521 мс.
Протокол должен выглядеть так:
Как это достижимо?
Проблема в том, что я не могу хранить весь текстовый файл в массиве, потому что AVR слишком мал (самый большой атмега - 512 КБ, если я хорошо помню). Мне нужно передать текстовый файл с помощью терминала (гипертерминала) построчно . НО как отправить строку с помощью терминала, дождаться пока атмега закончит процесс --> отправить подтверждение обратно на ПК для потоковой передачи следующей строки?
Что вам нужно, так это «управление потоком» или «рукопожатие».
Для USART вы можете использовать аппаратное управление потоком с помощью RTS/CTS , но сегодня во многих реализациях USART они отсутствуют. Если вы закончили работу с оборудованием и не подключили эти контакты, вы можете попробовать « программное управление потоком » с «XON/XOFF», потому что эти два кода не появятся в вашем текстовом файле (это непечатаемый символ). Поэтому используйте их, поскольку управление потоком возможно. Но по сравнению с аппаратным управлением потоком последний может быть немного медленнее.
Основное ограничение для вас заключается в том, что ваш MCU недостаточно силен для обработки всего файла, поэтому разумно проанализировать файл на ПК.
Если вы не хотите погружаться в сложную программу USART на ПК, вы можете попробовать Tera Term , программируемую, удобную «убийцу гипертерминала» с открытым исходным кодом.
Игнасио Васкес-Абрамс
Дэйв Твид
Напстер
Напстер
Напстер
Игнасио Васкес-Абрамс
Дэйв Твид
Крис Стрэттон
Игнасио Васкес-Абрамс
Напстер
Игнасио Васкес-Абрамс
Напстер
Игнасио Васкес-Абрамс
Напстер
Игнасио Васкес-Абрамс
Напстер
Игнасио Васкес-Абрамс
Напстер
Дэйв Твид