Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
20.10.2007, 21:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Re: измеритель напряжения подключаемый к com порту пк
Сообщение от EXIS
|
Сообщение от avr123-nm-ru
|
Сообщение от EXIS
|
Время поджимает с МК пока дело не имел.
|
Вот для вас - http://www.avr123.nm.ru/
|
Я тут уже почитал вкратце ваш курс, про его существование я знаю уже достаточно давно, но изучить как-то руки не доходили, да и вообще я ориентировался на PIC контроллеры. Там у вас, как раз есть примерчик на AT90S8535 у него 8 входов, и быстрая скорость измерений, это даже лучше. Вот только, его еще нужно как-то связать с com портом через rs-232.
http://avr123.nm.ru/z11.htm
|
Так, если не путаю, у чипа AT90S8535 на "борту" имееться УАРТ, остаеться согласовать физические уровни, а пересылка в порт выполняеться одной командой.
Удачи!
__________________
Я, думаю, нужно подумать...
|
|
|
|
20.10.2007, 21:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
А прогу вывода данных с компорта на экран я написал, но - жаба давит 2 метра через жопорез выкладывать.
В понедельник. Хотя - вот релизник.
Прикрепленный файл: 2330640.rar
|
|
|
|
20.10.2007, 21:41
|
|
Прописка
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Сообщение от urry
|
А прогу вывода данных с компорта на экран я написал, но - жаба давит 2 метра через жопорез выкладывать.
В понедельник.
|
Желательно еще и исходники выложить. Кстати вы в какой среде и на каком языке прогу разрабатывали?
|
|
|
|
20.10.2007, 21:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Вижуал 6, немного переделал свою старую прогу.
|
|
|
|
20.10.2007, 22:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
КСТАТИ...
Программа для работы с посл. и пар. портами на низком уровне. Ни разу не подводила, спасибо огромное
тов. Конапацкому и Пашкевичу, может они на форуме или кто-либо знает историю создания данной проги.
Пользуюсь до сих пор, надежна и проста как АКМ.
(хотя, на сей момент, есть более совершенные и функциональные....)
Удачи!
Прикрепленный файл: 199536.zip
__________________
Я, думаю, нужно подумать...
|
|
|
|
21.10.2007, 11:18
|
|
Прописка
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Собираю пример 11 в протеусе из www.avr123.nm.ru
С МК доселе не знаком, что нужно чтобы запитать микроконтроллер и схема работала?
-- Прилагается рисунок: --
|
|
|
|
21.10.2007, 11:33
|
|
Прописка
Регистрация: 20.02.2006
Сообщений: 284
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
|
Re: измеритель напряжения подключаемый к com порту пк
Сообщение от sanitar249
|
Так, если не путаю, у чипа AT90S8535 на "борту" имееться УАРТ, остаеться согласовать физические уровни, а пересылка в порт выполняеться одной командой.
Удачи!
|
А как это будет работать ком порт ведь один, а значений восемь, каждое по 1024 бита. Допустим в ком порт будут отправляться по очереди 8 значений, друг за дружкой, то как, определить какое значение первое, какое второе? Может нужна некая обратная связь. Я просто этого не знаю объясните.
|
|
|
|
21.10.2007, 11:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Re: измеритель напряжения подключаемый к com порту пк
Сообщение от EXIS
|
Сообщение от sanitar249
|
Так, если не путаю, у чипа AT90S8535 на "борту" имееться УАРТ, остаеться согласовать физические уровни, а пересылка в порт выполняеться одной командой.
Удачи!
|
А как это будет работать ком порт ведь один, а значений восемь, каждое по 1024 бита. Допустим в ком порт будут отправляться по очереди 8 значений, друг за дружкой, то как, определить какое значение первое, какое второе? Может нужна некая обратная связь. Я просто этого не знаю объясните.
|
В таком случае вводиться понятие протокола обмена, Вы вольны создать его сами, или использовать стандартный. Например, алгоритм такой : верхний уровень(РС) посылает пару-тройку уникальных байт в порт, нижний уровень МК их приняв, посылает ответ:"я готов к обмену". Если по истечении таймаута ответ не получен РС считает устройство не подключенным и выдает ошибку. Если ответ получен РС дает команду опросить какой-либо канал АЦП, МК опрашивает и посылает кадр данных(требуемой длины) РС, кадр для надежности можно "закрыть" подсчитанной контрольной суммой. РС сравнивает данные и CRC и если все нормально считает данные принятые с этого канала валидными. Можно опрашивать следующий канал. Примерно так...
Вам полезно ознакомиться с семеуровневой моделью сети
это стандарт де-факто, на основе которого построены все сети на нашей планете.
Удачи!
__________________
Я, думаю, нужно подумать...
|
|
|
|
21.10.2007, 12:40
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Вот, начирикал простеиший примерчик для 80с31
непрерывное декременирование аккумулятора и вывод его значения через УАРТ и один из портов на индикатор. В принципе до команды SBUF в аккум может быть любое значение
Удачи!
Прикрепленный файл: 4944461.ZIP
__________________
Я, думаю, нужно подумать...
|
|
|
|
21.10.2007, 13:08
|
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
В той программе, что я привел - после нажатия кнопки старт выдается на контроллер код фф, после чего принимается 8 байт информации - по 2 байта на канал. (договаривались о 10 битном ацп, насколько я помню).
Значение 0 байта умножается на 256 и складывается с значением первого. Затем результат умножается на цену младшего деления - (задается в программе) и выводится на экран.Аналогично по остальным 3 каналам.Если в течении 4 секунд после выдачи стартового байта 8 байт не принимаются, порт закрывается с сообщением о неисправности контроллера. После нажатия кнопки старт запускается таймер, через заданное в секундах время идет повтор. Контрольной суммой инфу не закрывал.
Код:
|
port.Open(kom, dwBaud, CSerialPort::NoParity, 8, CSerialPort::OneStopBit, CSerialPort::XonXoffFlowControl);
sBuf[0] = 255; // одни 1 для передачи
port.Write(sBuf, 1); // выдаем
rCommTimeouts.ReadTotalTimeoutConstant =4000; // 4000 миллисекунд
rCommTimeouts.ReadTotalTimeoutMultiplier = 1;
port.SetTimeouts(rCommTimeouts);
if( port.Read(rBuf,8)!=8) // количество принятых байт (8) за время Timeout
//не соответствует ожидаемому
{
port.Close();
MessageBox("Контроллер не подключен !","Ответ отсутствует или искажен!",MB_OK);
KillTimer( 1 ); // убиваем таймер
return;
}
set_u();// обрабатываем эти 8 байт
SetTimer( 1, 1000*delay, NULL );// запускаем таймер
UpdateData(false); // светим на экране результат
} |
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 19:20.
|
|