www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik µC stürzt ab


Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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:
$regfile = "m8def.dat"
$crystal = 8000000

Dim Ad As Word
Dim Temp As Single
Dim Pb As Byte

Config Portd = Output
Config Portb.0 = Output
Config Portb.1 = Output
Portb = 255 - 31
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Portb = 0
Portd = 0
Waitms 100

Do

Ad = Getadc(0)

'Linear Method
'Ad = Ad / 94

'Expotential Method
Ad = Ad + 1 'Log 0 is imposible
Temp = Ad
Temp = Log(temp)
Temp = Temp / Log(2)
Ad = Temp

'LED Routine: Ad ^= On Leds
Ad = 2 ^ Ad

Pb = 0
If Ad = 512 Then
Ad = Ad - 256
Pb = 1
End If
If Ad = 1024 Then
Ad = Ad - 768
Pb = 3
End If

If Ad > 256 Then
'µC should never be here
Do

Toggle Portd
Waitms 100

Loop

End If

Ad = Ad - 1
Portd = 255 - Ad
Portb = 3 - Pb

Loop

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich bin mir nicht sicher aber ich glaube es passiert beim anschlag.

Dann werd dir sicher. Alle LEDs einzeln nacheinander setzen bis
das Programm abkackt. Also ohne ADC ohne log() usw.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Log -> natürlicher Logarithmus.

MfG Spess

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:
> Log -> natürlicher Logarithmus.

Die Basis ist doch egal ich teil doch dadurch wieder:

Log_b(a) = Log(a) / Log(b)

verrückt!
Jetzt funktioniert es obwohl ich nachdem alle Tests funktionierten 
dasselbe Programm wieder draufgemacht hab.

Keine AHnung warum.

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sam schrieb:
> Leider nur eine Falschmeldung. Anderes Progamm gleiches Problem: Die
> Leds leuchten ganz schwach. Kann es sein, dass der ADC einen Quarz will

Nein

> (ich hab ihn mit 8Mhz intern laufen). Oder sollte ich noch ein paar
> Fusebits setzen?
> Ich hab bisher:

BODEN kann nicht schaden

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rein von der Theorie her kann mir jemand zu dem Vumeter tipps geben? Ist 
es besser wenn man ihn linear oder expotentiell steuert?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.