Activity

OSD Платы.
okan_vitaliy:

обратите внимание возможность совместного доступа к переменной vsync_wait. Я б все таки до её изменения из основного цикла запретил прерывания, а после разрешил.

Спасибо…
я где-то читал, что имеет смысл защищать операции с неатомарными данными, в нашем случае vsync_wait - один байт, т.е. переменная атомарная. Чтоб лучше разобраться, открыл asm-код:

Скомпилированный код прерывания

00000954 <__vector_1>:
     954:	1f 92       	push	r1
     956:	0f 92       	push	r0
     958:	0f b6       	in	r0, 0x3f	; 63
     95a:	0f 92       	push	r0
     95c:	11 24       	eor	r1, r1
     95e:	10 92 6a 04 	sts	0x046A, r1
     962:	0f 90       	pop	r0
     964:	0f be       	out	0x3f, r0	; 63
     966:	0f 90       	pop	r0
     968:	1f 90       	pop	r1
     96a:	18 95       	reti

А вот начало DrawScreen

00003f12 <_Z18MAX7456_DrawScreenv>:
    3f12:	81 e0       	ldi	r24, 0x01	; 1
    3f14:	80 93 6a 04 	sts	0x046A, r24
    3f18:	80 91 6a 04 	lds	r24, 0x046A
    3f1c:	88 23       	and	r24, r24
    3f1e:	e1 f7       	brne	.-8      	; 0x3f18 <_Z18MAX7456_DrawScreenv+0x6>

0x046A - volatile vsync_wait, 0x3f - SREG

насколько я могу судить, вызов прерывания после любой из строк не должен ничего нарушить, SREG в прерывании сохраняется/восстанавливается. Единственно, если значение vsync_wait изменится между 3f18 и 3f1с, то brne перейдет на 3f18 всего один лишний раз. Вроде так… Я не настоящий сварщик только учусь, поэтому поправьте, если где-то ошибаюсь.

Кстати, там Carlo из KVTeam интересуется, можно ли им Ваш мод использовать 😃 www.multiwii.com/forum/viewtopic.php?p=44844#p4484…

Now we need to ask the RC guy (may be okan_vitaliy as Russian is not my second language to read the whole tread) the permission to use this mod.

OSD Платы.
okan_vitaliy:

Всё!!! Вылечил вавку с артефактами.

Виталий, огромное спасибо! Я немного модифицировал Ваш код, в прерывании оставил только сброс флага vsync_wait, работает отлично.

Заметил еще такой момент - KVOSD очень сильно фильтрует RSSI, ладно аналоговый, но зачем так сильно сглаживать PWM и MSP - непонятно. Выключаешь передатчик, а RSSI на экране плааавно падает в течение нескольких секунд. Короткие провалы в сигнале вообще никак не отображались - убрал это сглаживание для RSSI по PWM и MSP, теперь уровень RSSI очень четко реагирует на изменения.

В планах еще добавить 9ю страницу в экранный конфигуратор и вывести туда недостающие настройки, такие как профиль, throttle mid/expo и т.д. Ссылка на мои изменения, если кто хочет попробовать.

FRSky + FPV
rashidik:

Сетап: фриска + 5.8 гГц 200 миливатт.
При включении 4го канала вот такие помехи

Вы писали, что ждете новый приемник для тестов. Скажите, удалось решить проблему?
У меня FrSky тоже глушит видео, использую передатчик 200mw и приемник RC305 с himodel.