Собрал все куски будущего усилителя в кучку. И пошаманил маленько как с программой, так и с железом
Пришлось изрядно увеличить гистерезис переключения ступенек громкости. Иначе, запросто можно нарваться на место в потенциометре, где две соседних ступеньки будут хаотично щёлкать, сменяя друг дружку.
Теперь это выглядит вот так:
unsigned int measure2[32]={8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,256};
const unsigned int measure[32]={8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,256};
//.......
for(;;){
adcshort=(ADC10MEM>>2);
first=0;
for(i=0;i<32;i++){
if ((adcshort<measure2[i])&&(first==0)){ //
inverse=i; //31-i; это потому, что у меня тестовый блок реле минусом управляется а не плюсом
vol|=inverse;
// for (count = 0; count < 120; count++);
vol&=((inverse)|0xE0);
measure2[i]=measure[i]+4;
measure2[i-1]=measure[i-1]-4;
first=1;
}//if
else {
measure2[i]=measure[i];
measure2[i-1]=measure[i-1];
}
}
}
Изменения в схеме были обусловлены:
а) обеспечением бОльшей всеядности увеселителя ("Вороника на крыльце" шла на ура, а вот "Воля и Разум" - уже кашеобразно). С этой целью был уменьшен R2 и введён R112
б) желанием согласовать усилитель с регулятором громкости сразу, без лишних нагрузочных резюков. Заодно, думаю и в целом усилителю похорошеть должно, когда в ООС более низкоомные резюки стоЯт
Подключал усь к софтовому ГКЧ. Падение напряжения на R6 в звуковом диапазоне частот неизменно при резистивной нагрузке усилителя, что есть хорошо, и хорошо весьма. Дальше проверить не смог, потому как несофтовый генератор у меня по-прежнему лишь в проекте.
Глубина ООС при нагрузке 8Ом составляет 14дБ.