7.1 Kanaals Microcontroller Gestuurde Volumeregelaar

De rest......
(streaming-/computeraudio graag in de daarvoor aangewezen forumgroep)

Moderators: Barry2001, Beheerdersteam

Gebruikersavatar
Pjotr
Berichten: 36764
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Bericht door Pjotr »

Misschien kom je nog wel eens op Assembler uit Juul :twisted: ;) Dan heb je echt alles zelf in de hand maar dan moet je ook echt alles zelf organiseren en opzetten. Heb je dat eenmaal voor een MCU gedaan dan kun je dat wel weer hergebruiken. Overigens zijn PIC'jes geen pretje in assembler, kun je beter naar Atmel AVR, Zilog Z8 of desnoods een 8051 omzien.
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

Volgende keer wordt het gewoon een AVR.

Maar enig id wat er mis is? Ik ben de halve dag al aan het zoeken, snap er niets van.
Met die codepage 0 en 1 heb ik ook steeds geouwehoer, kans dat het hier zit. Maar ik kom er maar niet uit....

voorbeeltje, als ik dit toevoeg werkt het niet meer:

CODE: Selecteer alles

Eenheden=Vol_Front%10;	//Eenheden
Terwijl ik dit ergens anders ook heb gedaan, het is gewoon een kloppende code :? Ik krijg dit ook als ik hier een ongebruikte, nieuwe variabele voor neem.
Dan doet bijv de master volumeknop het niet meer. Ik zie hier niet echt een oplossing voor...
Gebruikersavatar
GeertJ
Berichten: 170
Lid geworden op: di 23 aug 2005, 19:06
Locatie: Gent - België

Bericht door GeertJ »

Pjotr schreef:
Misschien kom je nog wel eens op Assembler uit Juul :twisted: ;) .
tja, das wat da ik nu aant doen ben voor mijn project... :S geen pretje.
@JuuL: wilde gok, maar mss struikeld compiler over % teken in je declaratie.... :-k
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

THx voor je help Geert, maar dat werkt ergens anders ook.
Volgensmij heb ik een truukje gevonden om die compiler niet te laten zeuren.

GeertJ, JAL al eens geprobeerd?
Daniel heeft zijn project daarmee gemaakt , heb hem niet horen klagen ;)

Het is maar dat ik al zoveel code heb, anders was ik meteen overgestapt op wat anders.

/edit
Eindelijk het werkt... I'll need a break :P
Gebruikersavatar
GeertJ
Berichten: 170
Lid geworden op: di 23 aug 2005, 19:06
Locatie: Gent - België

Bericht door GeertJ »

\:D/ =D>

JAL, heb ik al eens naar zitten kijken, maar dient precies alleen maar om PIC's te programmeren niet?? kzit met nen 8051 :?
Gebruikersavatar
Pjotr
Berichten: 36764
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Bericht door Pjotr »

Afbeelding Afbeelding Als je maar volhoudt Juul ;)

Edit

Volgens mij ben je met een 8051 altijd nog een stuk beter af dan met een PIC Geert. Vooral de nieuwere van Atmel zijn en single clock/instructie en in circuit te programmeren.

Maar ben je eenmaal verwend met die zak registers die allemaal als alu kunnen dienen in een AVR of een Z8, dan wil je niet anders meer als je in assembler programmeert. Maar een 8051 is ook prima om het te leren hoor ;)

/Edit
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

LoL @ smileys

Probleem is gewoon opgeschoven.
ALs ik ergens een variabele erbij aanmaak, loopt de boel weer in de soep.
Kunnen je variabelen "op" zijn? Heb er een stuk of 50 nl.
Gebruikersavatar
Henkjan
Beheerder / Site Admin
Berichten: 33828
Lid geworden op: do 01 jan 1970, 1:00
Locatie: Berkel en Rodenrijs
Contacteer:

Bericht door Henkjan »

zou zomaar kunnen. hoeveel ruimte nemen die bijelkaar in?
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

ongeveer 50 uns8 variabelen.

[img]/error.JPG[/img]

Heb ook steeds een verify error, lijkt me dat ik dat eerst moet oplossen.
Steeds bij 0800h, de rest lijkt wel goed...
Heb al 2 andere PICs geprobeerd, die doen hetzelfde.
Enig id hoe dat kan komen?
Voor dat adres komen eerst een stel 3FFF (Van codepage0 denk ik) misschien blijft het datasignaal te lang hoog ofzo? Of een capaciteit die eerst oplaadt en na die 3FFF ontlaadt?

Heb blijkbaar mijn dag niet :P
Laatst gewijzigd door JuuL op di 05 nov 2019, 14:41, 1 keer totaal gewijzigd.
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

Bovenstaand probleem is me nog niet helemaal duidelijk, maar ik ben een stap verder 8)

Ik ben nou bij het punt balans etc aangekomen.
Nou heb ik bijv het menu
"Front: +xx%"

En ik ben er nog niet helemaal over uit of het klopt zoals ik het in gedachten heb.
Stel het Master Volume is -90dB en de Front balance is ingesteld op +100%.
Welke waarde zou je dan moeten hebben voor het Front niveau qua gehoor?
+6dB=-84dB?

En als het Master Volume= -56dB en het Front niveau=+100%
Wat moet dan het Front Volume zijn?
-56+6= -50dB?

/edit
Als ik met dBs werk ipv procenten ben ik al van de moeilijkheden af lijkt me.
En thx Pjotr.
Laatst gewijzigd door JuuL op do 29 dec 2005, 12:24, 1 keer totaal gewijzigd.
Gebruikersavatar
Pjotr
Berichten: 36764
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Bericht door Pjotr »

JuuL schreef:
Probleem is gewoon opgeschoven.
ALs ik ergens een variabele erbij aanmaak, loopt de boel weer in de soep.
Kunnen je variabelen "op" zijn? Heb er een stuk of 50 nl.
Da's de wet van behoud van ellende: "De hoeveelheid ellende in een bepaald systeem is constant"

Helaas kan ik je niet echt verder helpen Juul. Daarvoor is het te lang geleden dat ik wat met die PIC's heb gedaan. En ik had er toen al snel genoeg van. Gewoon vol houden en laat je niet kisten door zo'n zwart stukkie plastic met een paar pootjes er aan.

De hoeveelheid variabelen die je kunt maken hangt af van de hoeveelheid ram die aan boord is. Dat zegt nog niet alles want een gedeelte daarvan is ook nodig voor de diverse stacks, zoals de program stack en eventuele data stack(s). Hoeveel daarvoor gereserveerd wordt hangt van je compiler af.
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

Als het fout gaat bij delen, wijst dat erop dat de stack vol zit?
Zo ja, wat kan ik eraan doen? :roll:

/edit
Vooruitgang!
Als ik wat variabelen delete werkt het wel, duidelijk dus teveel variabelen.
Laatst gewijzigd door JuuL op do 29 dec 2005, 13:12, 1 keer totaal gewijzigd.
Gebruikersavatar
Henkjan
Beheerder / Site Admin
Berichten: 33828
Lid geworden op: do 01 jan 1970, 1:00
Locatie: Berkel en Rodenrijs
Contacteer:

Bericht door Henkjan »

tja, ik heb alleen programmeer ervaring in turbo pascal (ja, zo oud ben ik wel), maar als ik daar tegen zoiets aanliep ging ik met pointers werken ipv gewone variabelen, maar geen idee of dat in dit geval een zinnige opmerking is :roll:
Gebruikersavatar
Pjotr
Berichten: 36764
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Bericht door Pjotr »

JuuL schreef:
Als het fout gaat bij delen, wijst dat erop dat de stack vol zit?
Zo ja, wat kan ik eraan doen? :roll:
Je stack loopt alleen vol als teveel subroutines een andere subroutine (of functie) achter elkaar aanroepen. Voor iedere sub moet nl het return adres op de stack en eventuele return data.

Het kan best dat je gewoon te weinig ram over hebt voor de hoeveelheid variabelen. Overigens is er met weinig ram ook nog het risico dat de stack in je variabelen gebied gaat lopen en dan heb je helemaal een probleem. Als het goed is waarschuuwt je compiler daarvoor of geeft een foutmelding.

Geeft je compiler niet een lijstje met gealloceerde adressen?

Pointers hebben in dit geval geen zin Henkjan want dat zijn alleen adresverwijzingen naar variabelen en die heeft Juul al apart globaal gereserveerd. Zoiets heeft zin als de return data over de stack overgedragen wordt en dat stackoverflow tot gevolg heeft of bij arrays.
Laatst gewijzigd door Pjotr op do 29 dec 2005, 15:13, 1 keer totaal gewijzigd.
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

O die compiler is waardeloos :D
Geeft vast niet zulke errors.
Maar ik weet waar het aan ligt!

Nog klein vraagje:
Als ik het Front volume kan instellen met -100dB tot +100dB tov het Master Volume.
En als ik deze bijv op +10dB instel, het master volume is bijv +10dB. Dan is het Front Volume +20dB.
Maar als het Master Volume -45 dB is, dan is het Front Volume -45+10=-35dB.

Klopt deze berekening, zijn de verhoudingen goed? Dat het Front Volume niet opeens veel harder is tov het Master volume bij lage niveaus bijv.
Gebruikersavatar
Pjotr
Berichten: 36764
Lid geworden op: do 26 aug 2004, 18:34
Locatie: bollenstreek

Bericht door Pjotr »

Duh ???

Tussen links en rechts en front en rear is plus en min 6 dB meer dan genoeg. Hoe je dat tov je mastervolume organiseert is aan je zelf.

Edit

Snap nu je vraag. Als je tussen links en rechts b.v. 3 dB verschil hebt blijft dat zo als je het mastervolume veranderd.

Db's zijn zijn relatief: Verhoudingen dus in absolute zin. Dus als je het mastervolume verandert blijft de verhouding tussen links en rechts (en/of voor en achter) gelijk als je het goed doet. Het totaal wordt harder of zachter.

/Edit
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

Ok, was ff voor zekerheid.
Die -100dB is gewoon om bijv het achterkanaal -zo goed als- uit te zetten.

Nu ben ik wel ff zoet voorlopig.
Gebruikersavatar
daniel
Berichten: 1458
Lid geworden op: vr 17 sep 2004, 8:48
Locatie: Eindhoven

Bericht door daniel »

als je je rear-kanalen wilt muten, dan kun je de debetreffende pga's gewoon muten. Ofwel hardwarematig via de mute-pin, ofwel softwarematig door de waarde '0' te schrijven.

Dat probleem met die variabelen, volgens mij komt dat idd door een geheugenallocatie. Als ik mij niet vergis, is bij die pic 16f877 het ram opgedeeld in verschillende banken. als je compiler daar niet mee om kan gaan, kun je dus een probleem krijgen (ik ben daar zelf neit tegenaan gelopen, omdat de JAL compiler dat gelukkig voor mij opgelost heeft).
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

daniel schreef:
als je je rear-kanalen wilt muten, dan kun je de debetreffende pga's gewoon muten. Ofwel hardwarematig via de mute-pin, ofwel softwarematig door de waarde '0' te schrijven.
[
Voor echte mute heb ik 1 aparte knop, als je die indrukt wordt er via de PIC de MUTE pinnen van alle PGA2310 ICs geactiveerd (=laag).
-100dB lijkt me voldoende om bijv de kanalen apart te "muten" -voor zover dat nodig is-, ik kan het ook -130 maken dan is het echt gemute.

Ik heb wel last van redelijke DC ploppen bij het in- en uitschakelen.
Zou het niet verstandiger zijn om de caps aan de output ipv de input te plaatsen?
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

Problemen zijn nog niet voorbij :roll: Maar ben wel stukje opgeschoten.
Wel frustrerend trouwens dat het niet aan het programmeren ligt steeds, maar aan de beperkingen van die compiler...

Heb nu last van oscillaties volgensmij, de output is de ene keer ~vanaf 0 tot plus en de andere keer wel goed en weer keer later ~vanaf 0 tot min.
Ik heb ontkoppelctjes en een weerstand van 100 Ohm aan de output van de PGA2310s. Miss nog een ctje naar gnd daar.

/edit
Dit kwam doordat digitala voeding uitstond :lol:
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

[img]/balance.JPG[/img]
Maar eens een keer een positief bericht posten!
Het balans, werkt geweldig 8)
Ook werken de andere kanalen etc.

De grootste tijd gaat in die compiler zitten ipv het programmeren :twisted:. Allerlei vreemde dingen steeds, lijkt een excuus voor niet kunnen programmeren maar is het niet.
Ik zit nu op het limiet van codepage0, ik kan alleen hier code kwijt anders loopt de boel in de soep. Dus nog optimaliseren als het lukt en anders er wat uitgooien, balkje bijv. Is wel jammer maar goed.
Laatst gewijzigd door JuuL op di 05 nov 2019, 14:40, 1 keer totaal gewijzigd.
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

Heeeeel goed nieuws :lol:

Ik heb een fatsoenlijke c compiler nu! Ik maak mijn hele programma opnieuw en dan gaat het wel goed want deze compiler zeurt niet om codepage bende :D

klein vraagje:
Waarom werkt dit wel:
char Text[]="hoi";
en dit niet:
char Text[];
Text="hoi";
Gebruikersavatar
voodooless
Berichten: 4775
Lid geworden op: di 02 nov 2004, 23:23
Locatie: Arnhem
Contacteer:

Bericht door voodooless »

JuuL schreef:
Ik heb een fatsoenlijke c compiler nu! Ik maak mijn hele programma opnieuw en dan gaat het wel goed want deze compiler zeurt niet om codepage bende :D
Tja, ik zei al de hele tijd dat je beter een "echte" compiler kon zoeken ;)

klein vraagje:
Waarom werkt dit wel:
char Text[]="hoi";
en dit niet:
char Text[];
Text="hoi";
Tja, dat is omdat je dan de array kunt initialiseren met "hoi". later geef je er een nieuwe waarde aan, en werkt het dus niet. Daarnaast is char Text[] alleen een pointer naar een stuk geheugen, zonder dat daar ook een langte aan verbonden is.

zo werkt:

int aap[] = {2,3};

maar niet:

int aap[];
aap = {2,3};
JuuL
Berichten: 2616
Lid geworden op: za 12 mar 2005, 16:38

Bericht door JuuL »

deepspace schreef:
Tja, ik zei al de hele tijd dat je beter een "echte" compiler kon zoeken ;)
Ik wou ook niets liever, moet je wel eentje kunnen vinden :D
Tja, dat is omdat je dan de array kunt initialiseren met "hoi". later geef je er een nieuwe waarde aan, en werkt het dus niet. Daarnaast is char Text[] alleen een pointer naar een stuk geheugen, zonder dat daar ook een langte aan verbonden is.
En hoe zou het wel moeten? :oops: Pointers is niet mijn sterkste kant.

CODE: Selecteer alles

/////////////////////////////////////////////////////////////////////
//Write a string to the LCD
/////////////////////////////////////////////////////////////////////
void LCD_Text(int Position, Char Text[])
{
   int i=0;      
 
   LCD_Comm(Position);     //Go to the right position
   while(Text[i]!='\0')    //while the end character \0 isn't detected
   {
      LCD_Ch(Text[i]);     //Display a character
      i++;
   }
}
Dit werkt al wel :) Is toch wel een STUK mooier dan
LCD_Ch("h");
LCD_Ch("o");
LCD_Ch("i");
Gebruikersavatar
voodooless
Berichten: 4775
Lid geworden op: di 02 nov 2004, 23:23
Locatie: Arnhem
Contacteer:

Bericht door voodooless »

Yep, dat is al veel beter :)

Beste gewoon print functies maken voor strings, i.p.v steeds zo'n while loopje. Spaart je een berg typwerk :)
Plaats reactie

Terug naar “Overige Audio-elektronica”