µC stürzt ab

Gast #1787772
Lesenswert?

Hi

Ich steh wieder mal vor einem Problem. Mein kleines Program funktioniert 
nicht. Ich hab schon viel überlegt, warum, und habe auch eine kleine 
Sicherheitsabfrage eingebaut, aber es funktioniert nicht. Das Prg grhört 
zu einem VU-Meter mit 10 Leds (so ne Zeile 7*gr-3*rt). AUfjedenfall 
leuchten alle Leds recht schwach und es geht garnichts mehr. Ich bin mir 
nicht sicher aber ich glaube es passiert beim anschlag. also beim Wert 
1023 vom ADC. Aber durch nachrechnen komm ich nicht auf einen ungültigen 
Wert.
1023 + 1 = 1024
Log2(1024) = 10
2 ^ 10 = 1024
1024 - 768 = 256
256 - 1 = 255 -> invertiert 0

Der Ausgang wird invertiert, da ich sonst die Leitung überkruzen müsste.
Und ja man könnte das sich mit dem Log sparen, aber so kann ich davor 
eine Zahl zw. 1 und 10 angeben und sie wird ausgegeben.

Hier der Code:
1
$regfile = "m8def.dat"
2
$crystal = 8000000
3

4
Dim Ad As Word
5
Dim Temp As Single
6
Dim Pb As Byte
7

8
Config Portd = Output
9
Config Portb.0 = Output
10
Config Portb.1 = Output
11
Portb = 255 - 31
12
Config Adc = Single , Prescaler = Auto , Reference = Avcc
13
Start Adc
14
Portb = 0
15
Portd = 0
16
Waitms 100
17

18
Do
19

20
Ad = Getadc(0)
21

22
'Linear Method
23
'Ad = Ad / 94
24

25
'Expotential Method
26
Ad = Ad + 1 'Log 0 is imposible
27
Temp = Ad
28
Temp = Log(temp)
29
Temp = Temp / Log(2)
30
Ad = Temp
31

32
'LED Routine: Ad ^= On Leds
33
Ad = 2 ^ Ad
34

35
Pb = 0
36
If Ad = 512 Then
37
Ad = Ad - 256
38
Pb = 1
39
End If
40
If Ad = 1024 Then
41
Ad = Ad - 768
42
Pb = 3
43
End If
44

45
If Ad > 256 Then
46
'µC should never be here
47
Do
48

49
Toggle Portd
50
Waitms 100
51

52
Loop
53

54
End If
55

56
Ad = Ad - 1
57
Portd = 255 - Ad
58
Portb = 3 - Pb
59

60
Loop
Gast #1787854
Lesenswert?

Leider nur eine Falschmeldung. Anderes Progamm gleiches Problem: Die 
Leds leuchten ganz schwach. Kann es sein, dass der ADC einen Quarz will 
(ich hab ihn mit 8Mhz intern laufen). Oder sollte ich noch ein paar 
Fusebits setzen?
Ich hab bisher:

SPIEN
BOOTSZ1
BOOTSZ0
SUT0
CKSEL 0,1,3
Gast #1787899
Lesenswert?

Toll! Darauf hätte ich früher kommen können!!!
Der 9V Block hatte nur noch 5V + Spannungsregler kann das nichts werden.
Ich dachte bei der sparsamen SChaltung kann das nicht der Fall sein. 
Tja, Kontrolle ist halt besser.
Sorry für eure Bemühungen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren