Меню

+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
Тема закрыта
|
||||
|
Програмирование E330Пишу прогу для работы с E330 POWER_AND_PRINTER_E330(0,0); MemorySize=MEMORY_STATE(); if(MemorySize) FifoSize=8192; else FifoSize=400; SET_FIFO_PARAMETERS_E330(FifoSize, 0); for (int i = 0; i<NChannels; i++) {LogicNumChannels[i]=CREATE_CHANNEL(i, 0, 0); NumChannels [i] = i;} SET_SOFT_PARM_E330(CountActiveChannel, LogicNumChannels); SET_TIME_PARAMETERS_E330(1000); // запустим ввод
// обработчик прерываний, осуществляющий циклический ввод в массив Data
READ_FIFO(Data,HalfSize); for (int Nchann = 0; Nchann < CountActiveChannel; Nchann++){
MainDispl->SetAllBuffer (NumChannels[Nchann], (const short*)TempData);
RESET_IRQ();
Пишу вот так
Что еще нужно для корректной работы???
|
|||
|
||||
|
Re: Програмирование E330Кто нить ответьте пожалусто поскорее!
|
|||
|
||||
|
Re: Програмирование E330может не останвливать а игнорироать/неигнорировать по флажку? И еще работа с формами из обработчика это неправильно... |
|||
|
||||
|
Re: Програмирование E3301. Попробуйте после STOP_INTR() вызвать ADCHAN() 2. Если внутри обработчика идет вывод на дисплей, то это неправильно. В обработчике лучше перекладывать данные в массив, который обрабатывать уже в основной программе. |
|||
|
||||
|
Re: Програмирование E3301. ADCHAN() не помогает.
|
|||
|
||||
|
Re: Програмирование E330При нажатии на кнопочку делаю так
Нажимаю пару раз на кнопочку вроде все нормально работает останавливается запускается но если на нее нажать побыстрее и по больше раз то прога зависает. Что же делать? |
|||
|
||||
|
Re: Програмирование E330А какая у Вас среда разработки? |
|||
|
||||
|
Re: Програмирование E330C++ Builder 6 |
|||
|
||||
|
Re: Програмирование E330попробуйте просто ограничить скорость нажатия задержкой.... |
|||
|
||||
|
Re: Програмирование E330Вы говорите "И еще работа с формами из обработчика это неправильно..."
А если работа с формами не верно, то как тогда отображать данные? Если я буду их где то в другом месте отображать то пока я их отображаю может так случиться что буфер снова заполнится и произойдет прерывание и данные которые я еще не отобразил или не записал в файл перепишутся уже новыми. А если сделать чтоб данные не считывались какую-нибудь переменную ввести чтоб половинка не считывалась пока идет прорисовка то тогда какая разница где их отображать в обработчике прерывания или нет? Дело в том что у меня все нормально отображается все 16 каналов прорисовываются в обработчике прерывания и не каких глюков. Пока я не пытаюсь перезапустить процесс. Перезапустить нужно к примеру чтоб изменить скорость считывания или чтоб изменить колво считываемых каналов и т.п. и т.д. Так что по не останвливать а игнорироать/неигнорировать по флажку получается нельзя так. Как же быть??? |
|||
|
||||
|
Re: Програмирование E330так как насчет зажержки при перезапуске? |
|||
|
||||
|
Re: Програмирование E330Зачем мне задержка! И так понятно что это тоже самое что медленно нажимать кнопку!
Или вы все таки думаете что это какая то ошибка в Lcard32.dll? Я так думал что это я что то не правильно сделал. Но если честно после того как не где не было документировано что из буфера надо забирать данные чтоб он не останавливал прерывания и что не начинает писать вторую половинку пока я не заберу первую хотя по идее так оно и должно быть если логически подумать, то после этого уже ничему удивлюсь! Ну я все таки поробовал! void __fastcall TfrmMain::Button2Click(TObject *Sender)
Sleep(100); SET_TIME_PARAMETERS_E330(100);
Задержка 0.1 секунды вроде как работает даже.
Но это без отображения на эране данных. Как же их тогда отображать? В каком месте? Всмысе где в коде? |
|||
|
||||
|
Re: Програмирование E330Раскажите как это умные люди делают? |
|||
|
||||
|
Re: Програмирование E330И тогда сразу еще вопрос так что в файл писать то можно или нет в обработчике прерывания? |
|||
|
||||
|
Re: Програмирование E330Ну и еще вопросики
Надеюсь не сильно много вопросов! Просто горит уже а в документации почти ничего нет!
|
|||
|
||||
|
Re: Програмирование E3301. Можно
|
|||
|
||||
|
Re: Програмирование E330А может такое быть что у меня оно и зависает из-за того, что буфер не ститался перед тем как вызвать STOP_INTR() или все таки STOP_INTR() очищает буфер? |
|||
|
||||
|
Re: Програмирование E330скажем так....должен быть поток в котором отслеживается прерывание (по флажкам событиям или еще как). В билдере у потока есть спец процедура где можно обновлять компоненты интерфейса... |
Страницы 1
Тема закрыта