фуз биты, в CVAVR, а в понипроге так же ?
внутренний 8мгц
выставлял на ногах напряжение, тока всеравно ксв 99,99.
фуз биты, в CVAVR, а в понипроге так же ?
внутренний 8мгц
выставлял на ногах напряжение, тока всеравно ксв 99,99.
Я так понимаю, у устройства есть ручной режим, в котором все работает. В ручном режиме правильно измеряется КСВ? Если правильно, то дело в процедуре, котоая перебирает все возможные положения реле. Пока проверьте процедуру вычисления КСВ.
На ножке PC1 (24 выв) подается напряжение, пропорциональное прямой волне, которое в программе обзывается volt, а на ножку PC2 (выв 25) - обратной (отраженной), обзываемое volt1. Отраженная волна не может быть больше по амплитуде, поэтому в Swr_izm(){} проводится проверка, если volt<volt1, значит КСВ = 99.99. Так что может Вы просто перепутали вход для прямой и отраженной волн. Попробуйте посадить на общий PC2, тогда при любом положительном напряжении на PC1 Ваш КСВ будет 1. Если напряжения на PC1 и PC2 будут приблизительно равны, то и КСВ будет приблизительно бесконечность. Фьюз биты действительно соответствуют внутр RC генератору на 8 МГц![]()
Промоделировал в протеусе схему цифры, пременными резисторами менял напряжения, контроллер так и не омтановился при автонастройке. Прошивку использовал из сайта автора. При ручной остановке настройки, показывает ксв 99,9.
только что РС2 посадил на землю , подал на РС1 сигнал, но увы
ксв 99,99.
Реле все правильно управляются. Даже в ручном режиме ксв 99,99.
нехочет считать... ни в ручном, ни в автоматическом, хотя на ногах меги напряжения присутствуют.
А фузы, в понипроге, такие же как на картинке?
Понипрогом давно не пользуюсь. Вставьте новый микроконтроллер (если есть), и считайте фьюз биты. По даташиту они должны быть CKSEL3..CKSEL0 0001, и посмотрите, что понипрог делает галочкой (нолик или единичку), а что пустым битом. Но биты скорее всего правильно, потому что если Вы ошиблись с битами на 8 MHz int osc, т.е. вместо 1 написали 0 и наоборот, мк тактировался бы от внешнего кварца, но кварца не существует, а индикатор что-то показывает, значит прошито правильно.
Закомментируйте функцию swr_out(void) и вместо не добавьте следующее:
Код:void swr_out(void) //Функция вывода на дисплей значения КСВ { lcd_gotoxy(7,0); lcd_putsf("Volt "); if (volt/1000) {lcd_putchar (volt/1000+0x30);} //Если значение десятков >1, выводим на дисплей else {lcd_putsf(" ");}; //Если значение десятков <1, выводим на дисплей пробел lcd_putchar ((volt/100)%10+0x30); // Выводим значение единиц lcd_putsf (","); // Выводим запятую lcd_putchar ((volt/10)%10+0x30); // Выводим значение десятых lcd_putchar (volt%10+0x30); // Выводим значение сотых } //Возврат в строчку вызова функции т.е. вместо swr пусть мк покажет намерянное напряжение volt . Потом сделайте то же самое, только вместо volt напишите volt1. Опорноое напряжение 5 В, мк должен показать измеренное на ноге PC1 напряжение то ли в вольтах, то ли в милливольтах, не очень важно. Посмотрите, правильно ли он измеряет напряжения. да, еще, как-то я сразу не досмотрел. В программе запускается измерение АЦП и сразу же считывается измеренное значение из регистров. Это не совсем верно, вернее совсем не верно. Нужно дождаться, пока преобразование завершится, поэтому сперва рекомендую вставить строчку while (!(ADCSRA & (1 << 4))); // wait until ADC is ready после строк ADCSRA &=0xfb; ADCSRA |= 0x80 | 0x40 | 0x02 | 0x05;//Регистр ADCSRA:АЦП-вкл; Fацп=125кГц в void swr_izm (void) (таких строки там две). Теперь программа будет ждать, пока АЦП завершит преобразование
К сожелению, нечем изменить, то что Вы рекомендуете.
может Кто изменит прошивку, я проверю.
Может в этом недочет...
О бязуюсь проверить и отписаться, о ходе испытаний.
Создал 2 файла, AAT_swr.hex ждет пока АЦП завершит преобразование и выводит измеренный КСВСообщение от Селин Валентин
AAT_volt.hex тоже ждет окончания преобразования, но выводит напряжение на PC1. Вроде компильнулось все нормально. Попробуйте..
прошивка volt,
подключ. на 24 ногу (25 нога на земле) 0,65в на экране 6,49.
при 1 в на 24 ноге, экран 10,44.
т.е. считает вольты, но запятая нетам.
тот же опыт swr, на 24 ноге 1 вольт (5 на земле), нет значений( поморгал)
опыт 24 нога 1,73в , 25 нога 1,74в, SWR=3
1,07 0,99 SWR=2
1,13 1,02 SWR=1
0,72 1,06 SWR=9
вроде заработало, пока непонятен принцип
Ой, извиняюсь. Зачем-то были закомментированы строчки, выводящие КСВ на дисплей. Главное - начало мерить, а про путаницу с КСВ я говорил, что непонятно какие единицы измерения будут.
В этом варианте все должно быть нормально![]()
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)