Open ksv-success opened 4 years ago
No, the 8th bit of the argument "data" of that function will actually decide if the decimal place is lit or not. There are no access to that since it's on the TO-DO list. Maybe in the upcoming future I can add that.
Хорошо спасибо буду ждать будущее
Please have a look at this branch.
https://github.com/cocus/vc288-alt-fw/tree/cocus/calibration-and-moving-decimal-point-test
Note that if you changed any of the "calibrations" you should review these in this code. In order to calibrate the offset (i.e. reading non zero values when nothing is applied), you should disconnect any inputs, and tie the Voltage input to ground. Short the J2 and then power on the device. After a moment, release the short and after a moment it should do it.
Dynamic comma is also applied, but not tried. I don't have my meter at hand to try it out.
Hello, did you manage to try this? I'm interested on some feedback!
Спасибо! извините что так долго отвечал, только увидел сообщение на почте, попробую сегодня или завтра и напишу что у меня вышло )
все так же нет запятой к сожалению...
Пожалуйста, посмотрите на эту ветку.
https://github.com/cocus/vc288-alt-fw/tree/cocus/calibration-and-moving-decimal-point-test
Обратите внимание, что если вы изменили какую-либо из «калибровок», вам следует просмотреть их в этом коде. Чтобы откалибровать смещение (т. Е. Считать ненулевые значения, когда ничего не применяется), вы должны отсоединить все входы и привязать вход напряжения к земле. Замкните J2 и включите устройство. Через мгновение отпустите короткое и через мгновение оно должно это сделать.
Динамическая запятая также применяется, но не пробуется. У меня нет под рукой моего счетчика, чтобы опробовать его.
сделал так как вы сказали но ничего не изменилось все так же как и было
even if you supply some voltage to the input? Have you calibrated it before starting?
https://github.com/cocus/vc288-alt-fw/tree/cocus/calibration-and-moving-decimal-point-test совсем ничего не горит даже после калибровки
вообщем никаких показаний не показывает даже не горит не один сегмент ни до калибровки ни после возможно потому что у меня STM8S103F3P ничего не работает хотя первый код работал вполне нормально без каких либо изменений
нет индикации совсем
изменил значение 0 на 1 gpio.c "uint8_t read_programming_pin(void) { return PD_IDR_IDR6 == 1; }" и появилась индикация амперметра показывает 97.0 A... Вольтметр не показывает пока не подключишь измерение напряжения
Заработало осталось только откалибровать
не калибруется думаю нужно поставить резисторы правильного номинала
калибровка не работает(
If you change the 1 to 0 as you've mentioned, you're bypassing the calibration routine. You need to short that pin briefly and wait a little bit. After that it should calibrate.
else if (value >= 0.001) { / 0.001 - 0.999 / set_display_from_int(value*1000, 3, 1); }
возможно ли добавить такой код чтобы показывал значения до 1 Вольта
замыкаю j2 и контакт измерений на землю и подаю питание загорается индикатор А центральный вольтметра после больше 30 секунд отпускаю и ничего
Я уже и резистор 270кОм заменил на 300 кОм на амперметре так как на вольтметре тоже 300 кОм возможно нужно точное значение измерить мультиметром и добавить в программу ?
спалил программатор при попытке замерить напряжения 12 вольт после калибровки теперь у программатора 3 вольта закорочено на землю возможно что программа сработала неправильно? но как через резистор 300 кОм могло поступить напряжение на линию 3 вольта странно
ну вообщем спасибо за вашу работу не бросайте я все же спустя долгое время смог восстановить свой испорченный вольтметр благодаря вам и вашей программе после ремонта программатора или покупки нового буду опять пробовать вашу программу надеюсь STM8 жива )) может быть изначально с программатором проблема была криво устанавливал программу вообщем до встречи )
Hi, I've updated the branch. Please download it again. Note that on the first time you use this, you need to comment out line 170 out of main.c; and a calibration will take place when you start the meter. After that, please un-comment it. A proper calibration trigger will be added later. Dynamic comma should work "ok" now, and the amps should display something useful as well. Although the gain value for the amps is not right.
Привет! хорошо обновлю сейчас только недавно вроде бы восстановил свой программатор вышедший из строя после неудачного замера напряжения сгорел микроконтроллер stm32 заменил прошил буду пробывать заказа новый с Китая теперь будет 2 программатора ))
проэкт не компилируется ошибки выбивают но я пробывал старую версию вообщем и STM8 умерла буду ждать с китая STM8 закажу с излишком штук 10 мало ли ))) как получу и перепаяю установлю вашу программу и напишу обязательно
Good catch! I forgot to push that file! Please clone again, I've pushed that file.
или мой программатор неисправен или stm8 буду разбираться в чем проблема спасибо вам защищайтесь от короновируса ) вы нужный человек!
I'm not sure why that happens. do you mind cleaning all and then trying to just build and if that worsk, then debug?
Спасибо за ожидание получил программатор новый ! прошил новый stm8f003f3 все супер запятая есть все работает ! показывает 2.7 вольт при замере 3.3 ну это не критично. Спасибо огромное за ваш труд и поддержку !
Странные показания посторонние
Как обнулить амперметр ? Я пробывал изменять настройки которые вы говорили в прошлой версии но мало что изменяется
Амперы показывает на оборот не +10 а в -10 то есть должен показывать например 10 ампер а он показывает -10
Значения идут в минус
Изменил значение семплов на 2 вроде бы показывает почти 3.3 вольта но обманывает на 0.10 вольт не критично но все же что сделать чтобы показывало верно от 0.01 вольта
What do I need to do to calibrate?
only the change #define ADC_AVERAGE_SAMPLES_BASE_2 5
other settings do not change readings, all readings remain unchanged
what needs to be done so that the readings after the decimal point smoothly change, for example, from 0.01 to 0.99 (0.02, 0.03, 0.04 and so on)
Is calibration possible once with firmware?
Sorry I will wait for an answer dear friend
когда замыкаю JP2 минуту удерживаю показания не изменяются буду пробывать подбирать резисторы R2 и R3 но буду рад если ответите спасибо вам!
Я не знаю, почему это происходит. Вы возражаете очистки всех, а затем пытается просто построить, и если это worsk, то отладить?
my ST-Link was faulty I ordered a new one in China, that's just got it and immediately started to flash, the first one for some reason burned out, I restored it STM32 firmware but does not want to flash STM8 :D , there is apparently something else failed, so this message was I now have everything in order the new programmer works properly.
So, the calibration doesn't start by itself. you need to remove the input voltage (i.e. the one you'd measure) and then flash it with main.c:173 commented. This will run the calibration ALWAYS. After it boots for the first time, revert this change (i.e. un-comment the same line) and then it should work. I haven't figured a good value for the amps gain, which means that you'll read COUNTS from the ADC rather than amps. if you figure out the ratio (i.e. 1A on the input means for instance 300 counts, then the ratio is 1/300, which you could change on GAIN_FOR_AMPS and the repeat these steps).
а почему показания не изменяются когда я меняю значения в
я их изменил , но это ничего не изменило
я заметил погрешность в 1-2 вольт при изменении напряжения от 1 до 20 вольт
Because those are the reference values that will be stored on the calibration. so if you change those defines, you need to "re-calibrate" your device. That small error you saw on the voltage on that range I think its due to the non linearity that this ADC shows (which I didn't do anything to fix it for now).
понял буду пробовать тестировать но уже делал замену резисторов)) на вольтметре вроде бы удачно а вот амперметр бог знает чет непонятное на нем ))) что то показывает какие то числа когда ничего не подключено )))
амперметр показывает постоянно разные числа 200, 185, 197 очень быстро иногда удается разглядеть и при подключении нагрузки , измеряет в обратном направлении то есть если показывает 200 становится 180 то есть показания идут как бы в минус
если я правильно понял с запятой нужно работать здесь?
void set_segments(uint8_t data) { PA_ODR_ODR2 = data & 1; data >>= 1; // G PC_ODR_ODR4 = data & 1; data >>= 1; // F PC_ODR_ODR7 = data & 1; data >>= 1; // E PC_ODR_ODR6 = data & 1; data >>= 1; // D PC_ODR_ODR3 = data & 1; data >>= 1; // C PA_ODR_ODR3 = data & 1; data >>= 1; // B
ifndef SWIM_DEBUG_ENABLED
else
endif
}
void select_digit(uint8_t digit) { PD_ODR_ODR4 = digit != 0; PD_ODR_ODR6 = digit != 1; PD_ODR_ODR5 = digit != 2;
}