www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timing Probleme beim AVR mega16


Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
Ich bin kurz davor verückt zu werden.
Ich kriege einfach keine Vernünftigen wait Funktionen in Bascom ans
laufen.Es werden immer Falsche Intervalle ausgeführt.
ZB bei "Wait 1" was eine Sekunde sein soll sind es etwa 2 usw.

Also ich habe den ganzen Tag daran gefummelt und kann den Fehler
eingrenzen.
Es MUSS an der Platine liegen weil der gleiche Chip in einer anderen
Schaltung einwandfrei Funzt,auch wenn er in der "defekten"
programiert worden ist.

Der Interne RC Oszilator ist definitiv ausgeschaltet, ich benutze eine
Externe Taktquelle.8mhz.

Nun kann sicherlich niemand Hellsehen wo der Fehler auf der Platine
ist(welche ansonsten Funzt sprich programieren usw),deshalb ist meine
Frage ob jemand eine Idee hat welche "Fehlbeschaltung" dazu führen
kann das
A) keine genauen Delay Funktionen ausgeführt werden und
B) keine Servos angesteuert werden koennen.(bzw die zucken nur)

Ich weiss dass es wahrscheinlich keine Loesung geben wird, probiere
aber trotzdem mal...hier bleibt ja eigentlich nix ungeloest :)

vielen Dank im Vorraus

Achim

Autor: Thomas Burkhardt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Achim,


hast du mal die Stromaufnahme der Schaltung gemessen? Was nach meiner
leidvollen Erfahrung noch zu gemeinen Fehlfunktionen führen kann, ist
wenn nicht alle Pins richtig verlötet sind (weil man vielleicht
geträumt hat und die Sockeln nicht an der Oberseite mitgelötet wurden
<eg>).
Hast du die Schaltung schon mal funktionsfähig gesehen, sprich ist ein
grober Designfehler ausgeschlossen?

Viele Grüße

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
das Netzteil kann 10 a liefern,muesste also unkritsich sein.
(Die Spannung wird "geglätet,geregelt und wieder geglätet)
Wie gesagt kann ich dne Chip programieren und die LED leuchtet auf bzw
blinkt nur halt leider in der Falschen Frequenz.
Und die Servos machen nur Unsinn,deshalb denke ich es ist ein Timing
Prob.

quote
Was nach meiner
leidvollen Erfahrung noch zu gemeinen Fehlfunktionen führen kann, ist
wenn nicht alle Pins richtig verlötet sind (weil man vielleicht
geträumt hat und die Sockeln nicht an der Oberseite mitgelötet wurden
<eg>).
quote
Sorry wie meinst du das?

gruss

Achim

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast du im code auch nicht das "$crystal = 8000000" vergessen?

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe das "$crystal = 8000000" nicht vergessen und mit mehreren
Frequenzen gespielt.
Leider klappte es nicht da der Chip ja etwa halb so lange ist wie er
sein soll ein fach auf 4MHZ zu stellen....das ist nicht linear oder so

Gruss

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI,

in der Anleitung meine ich steht was davon das der Waitbefehl sich
immer auf 4 Mhz bezieht.

Mfg

Dirk

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
wie gesagt habe ich (fast)alle Frequenzen probiert und wenn 4MHZ
eingestellt sind kann ja 2MHZ oder 8 MHZ den richtigen Delay Wert
erzeugen.
Ausserdem funktioniert der timer0 nicht weil die Servos nicht funzen.
Also wie gesagt ich werde noch verückt!!!!!

vielen Dank für die tips vieleicht hat ja einer noch nen rettenden
Einfall.

viele Grüsse

PS
nur noch mal fürs Protokoll wenn man den AVR in eine Andere Platine
einsetzt geht Alles! und ich baue eigentlich alle Platinen gleich
auf,was sachen angeht wie Reset,Versorgungspannung,Ablockkondensatoren
usw.

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...also die Schaltung zieht 0.02 Ampere....

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann poste mal den schaltplan

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HALLO,
ich denke das kann nicht Schaden muesen allerdings weiss ich nicht wie
das geht,ich kenne mich mit eagle oä nicht aus.
Der Schaltplan ist weitsetgehend mit dem aus dem AVR Tutorial
identisch.
AVCC,VCC und AREF sind verbunden und mit einen 100n kerko gegen Masse
gelötet.
Den 47p Kerko habe ich wegelassen und es gibt einen Reset Taster.
Also Die Platine hat Stromversorgung,ISP,und einen Externen
Taktgeber,mehr nicht(ok eine LED).

Falls das jemanden was sagt; der Waitms 500 (soll 0,5 sec warten)
wartet ungefähr eine Sekunde.Also Faktor 2!?!?!??!!.
Wenn man die Codezeile "$crystal = 8000000" ändert,ändert sich diese
Zeitverzögerung nicht!!!.
Ich weiss das alles dafür spricht das der Interne Oszi an ist aber der
Chip ist 100% auf extern gestellt...er reagiert in einer Schaltung mit
Quarz NICHT.

gruss

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...sorry aus versehen 2 mal gepostet...

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bins Nochmal.Ich habe das Problem Isoliert,wenn auch nicht gelöst.
Wenn ich Folgende Zeilen auskomentiere:
------------------------------------------------------
Config Servos = 1 , Servo1 = Portb.0 , Reload = 10
Enable Interrupts
------------------------------------------------------

Funktionieren die Delay Funktionen Tadellos, und sogar genau doppelt so
schnell wenn ich 4mhz(anstatt der vorhandene 8mhz) angebe.

Nun da ich gerne Servos ansteuere hilft mir das nicht viel weiter.
Aber vieleicht hat jetzt jemand durchblick.

mfg

Achim

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...wenn man nur die Config Servos Zeile weglässt tuts auch alles...
....das verstehe wer will

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
setz die mal woanders im code ein. vielleicht is das ja irgendn bug.

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ähm, theorie:
durch den ständigen interrupt, der aufgrund der servo-sache ausgelöst
wird, wird der wait-befehl ständig "unterbrochen". dadurch dauerts
halt was länger, bis er abgearbeitet ist.

würde allerdings nicht erklären, warum der so programmierte controller
in ner anderen schaltung einwandfrei läuft...und ich weiß auch nicht,
ob bei der servogeschichte überhaupt interrupts ausgelöst werden :)

Autor: Achim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...woanders einsetzen bringt nix :(
...ja also servos brauchen laut bascom hilfe Interrupts....
...und Servos machen auch nicht was sie sollen...:(

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.