Zdravím, pokuším se o stavbu kytarové ladičky. Mám zrelizovaný převodník Frekvence/napětí a pomocí ADC snímám napětí na jeho výstupu. Podle napětí rozděleného do 6ti úseků rozhoduji o tom, jaká struna kmitá, rozsvítím ledku. Toto mi funguje, dále se však potřebuju rozhodnout zda je napětí (frekvence) snímané struny nižší, rovnoůrovni při přesném ladění, nebo vyšší. To se mi však nedaří, jsem začátečník, prosím poraďtě. Díky moc za každou radu!!! Kod zde:
$regfile = “m8def.dat”
$crystal = 1000000
Config Portd = Output
Portd = 00
Waitms 500
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Portc.5 = Output
Config Portc.4 = Output
Config Portc.3 = Output
Portc.5 = 1
Portc.4 = 1
Portc.3 = 1
Start Adc
Struna Alias Portd
Nizsi Alias Portc.5
Rovna Alias Portc.4
Vyssi Alias Portc.3
Dim Ref As Integer
Dim Ton As Integer
Dim X As Word
Dim Mereny As Integer
Const E1 = &B01111111
Const B2 = &B10111111
Const G3 = &B11011111
Const D4 = &B11101111
Const A5 = &B11110111
Const E6 = &B11111011
Const Zadna = &B11111111
Do
If Getadc(1) > 0 And Getadc(1) <= 30 Then Struna = Zadna
If Getadc(1) > 30 And Getadc(1) <= 190 Then Struna = E6
If Getadc(1) > 30 And Getadc(1) <= 190 Then Ref = 110
If Getadc(1) > 190 And Getadc(1) <= 350 Then Struna = A5
If Getadc(1) > 190 And Getadc(1) <= 350 Then Ref = 270
If Getadc(1) > 350 And Getadc(1) <= 510 Then Struna = D4
If Getadc(1) > 350 And Getadc(1) <= 510 Then Ref = 430
If Getadc(1) > 510 And Getadc(1) <= 670 Then Struna = G3
If Getadc(1) > 510 And Getadc(1) <= 670 Then Ref = 690
If Getadc(1) > 670 And Getadc(1) <= 830 Then Struna = B2
If Getadc(1) > 670 And Getadc(1) <= 830 Then Ref = 750
If Getadc(1) > 830 And Getadc(1) <= 990 Then Struna = E1
If Getadc(1) > 830 And Getadc(1) <= 990 Then Ref = 910
If Getadc(1) > 990 And Getadc(1) <= 1024 Then Struna = Zadna
X = Getadc(1)
Mereny = X
Ton = Ref - Mereny
If Ton > 0 And Ton <= 80 Then Nizsi = 0
If Ton = 0 Then Rovna = 0
If Ton => -80 And Ton < 0 Then Vyssi = 0
Loop
End
administrator: přejmenováno z "Načtení a výpočer hodnot s ADC v Bascom"