PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : problem mit dem Board



monty
06.03.2006, 13:31
Hallo zusammen,

bei mir funktionieren die Anzeigeelemente auf dem Board nicht mehr richtig.

Zum testen habe ich es so programmiert, dass alle LED leuchten außer einer.
nach dem Reset leuchten jedoch alle.
Wenn die Stromversorgung kurz unterbrochen wird, funktioniert alles(alle leuchten bis auf eine) anschließend leuchten wieder alle.

Woran kann das liegen?

Winne
06.03.2006, 16:23
Aha

leider wird hier nimand erraten können um was für ein Board es sich dabei handelt, .....µC, .....Programm.....,Programmer, .....

und meine Kristallkugel ist nun schon seit über einem Jahr zur Reapratur :)

monty
06.03.2006, 16:30
es handelt sich um das 'ISP Experimentierboard' von batronix.

Winne
06.03.2006, 16:41
Ddas ist zwar schon mal ne Aussage,

jedoch keine welche irgendwen befähigen kann, Dir nen vernünftigen Rat zu geben weil, weitere Angaben, siehe meine erste Antwort, notwendig sind.

Wichtig wäre for allem die Kenntnis deines Programmes und des Chips.Ich muß aber vorerst gleich mal fort vielleicht kan dir auch jemand anders derweil weiterhelfen und Dir die Würmer aus der Nase ziehen, denn zuvor wird niemand Deine Frage beantworten können.
Woran kann das liegen? Ich fürcht jedoch es liegt an Deinem Programm, so wie du es beschreibst.
MfG

monty
06.03.2006, 16:51
Microcontroller: Atmel 89C51AC2-IM
Programmiersprache: Assembler

Das Problem liegt aber wahrscheinlich nicht bei der Software, weil ich schon mehrere kleine Programme geschrieben habe. Wie gesagt funktioniert das Programm immer in den ersten zwei Sec nach dem Einschalten, dann fangen alle Dioden an zu Leuchten. Kann es vielleicht sein das es da hardwareseitig Probleme gibt, wie z.B. ein kaputter Kondensator oder Diode. Oder weißt du was sehr anfällig ist auf diesen Boards?

vielen Dank monty

Winne
06.03.2006, 19:38
Weis ich leider nicht, da ich AVR bevorzuge.


Was ich aber weiß, das ich zeurst mein eigenes Tun kritisch betrachte bzw. betrachten lasse bevor ich Fremdes schuldig spreche.

Aber wir haben hier auch einige 51er Spezeln welche Dir sicher gern weiterhelfen.

Das das Board ca. 2 sec tut was du willst und fortan aber nicht mehr läßt vermuten, dass Dein Prog abläuft, hernach aber irgend etwas macht, das Du nicht beabsichtigst. Deshalb vermute ich den Fehler im Programm.

Selbverständlich muß man auch die Schaltung des Boards und des Proggers betrachten. Aber ich bin wie gesagt kein 51er da ist Edgar der Fachmann, oder Peter Danegger bzw. Rudo....

Ich weis nicht wer von Ihnen alles den 2. Teil überhaupt mitließt. Die meisten nutzen vorwiegend den ersten Teil des Forums.

Winnie
06.03.2006, 19:59
Wie ich das sehe, handelt es sich wohl um ein kurzes Testprogramm in Batronix-Assembler?! Kopiere doch mal den Text davon hier rein, dann kommt man der Sache vermutlich näher. Ich kenne und benutze so ein Board zwar nicht, aber wie Winne schon sagt wird es ziemlich sicher an Deinem Programm liegen. Nur muss man es dazu erst mal hier sehen, bzw. lesen.

Gruß Winnie

monty
06.03.2006, 20:56
INCLUDE 89c51AC2.mc
led BIT P0.0
disp0 BIT P0.1
disp1 BIT P0.2
disp2 BIT P0.3
disp3 BIT P0.4
lcd BIT P0.6
datenport DATA P2

org 0h
JMP main


main: CLR lcd
CLR disp1
CLR disp1
CLR disp2
CLR disp3
SETB led ' LED's können aktualisiert werden
MOV A,#0d
MOV datenport,A ' alle Dioden leuchten
SETB datenport.0 ' datenport.0 wird auf 1 gesetzt die Diode 1 von 8 geht aus.

loop:

' nach etwa zwei sec geht Diode 1 wieder an.

JMP loop

gruß monty

Winnie
07.03.2006, 14:48
INCLUDE 89c51AC2.mc
led BIT P0.0
disp0 BIT P0.1
disp1 BIT P0.2
disp2 BIT P0.3
disp3 BIT P0.4
lcd BIT P0.6
datenport DATA P2 (Weg damit, P2 (Port 2) wird doch hier gar nicht benutzt.)

org 0h
JMP main


main: CLR lcd (löscht lediglich Bit P0.6 (Port 0, Bit 6))
CLR disp1 (CLR disp0)
CLR disp1
CLR disp2
CLR disp3
SETB led ' LED's können aktualisiert werden (Nein, setzt nur das ohnehin noch gesetzte led BIT P0.0)
MOV A,#0d (#0d wie Dezimal 0, oder wie Hex 0d (dez. 13?)
MOV datenport,A ' alle Dioden leuchten (MOV P0,#0 oder MOV P0,A)
SETB datenport.0 ' datenport.0 wird auf 1 gesetzt die Diode 1 von 8 geht aus. (z. B. SETB disp0 oder SETB P0.1 oder SETB lcd oder SETB P0.6 und die entsprechende LED geht aus)

loop:

' nach etwa zwei sec geht Diode 1 wieder an. (Wie kommt er aus der Schleife wieder raus und was steht da drin?)

JMP loop

Ganz nebenbei schaltet hier alles so schnell, dass Du es ohnehin nicht sehen kannst. Du musst Warteschleifen, Timer oder was auch immer einbauen. Hast Du die obigen Befehle von AVR-Assemblern, damit kenne ich mich absolut nicht aus und die 'normalen' 51er blicken das auch nicht. Wie auch immer, es liegt eindeutig an Deinem Programm und NICHT am Board. Ist ja immerhin auch schon mal beruhigend, gelle:D.

Gruß Winnie

Winne
07.03.2006, 15:18
Hallo Namens-Vetter danke fürs Übernehmen, aber hier tappe ich wie gesagt fast so im Dunkeln wie unser "verschlossener Freund"

Winnie
07.03.2006, 18:21
Sach doch nich imma Fetter zu mich, ich weiss doch dass ich Übbajewicht haben tu...:p

Alles sonst noch frisch, wo ist denn der Ed? Schon wieder auf Reisen;)?

Gruß Winnie

monty
08.03.2006, 00:27
INCLUDE 89c51AC2.mc
led BIT P0.0
datenport DATA P2 (datenport.0 = Diode1 ; datenport.1 = Diode2,usw.)

org 0h
JMP main


main:

SETB led (lässt es zu den Zustand der Dioden zu verändern)
MOV A,#0d
MOV datenport,A (alle Ports werden auf Masse gezogen, die Dioden leuchten)
SETB datenport.0 (datenport.0 wird auf 1 gesetzt die Diode 1 von 8 geht aus.

loop:

In der Schleife soll nichts gemacht werden. Da soll er nicht wieder raus, da ich ja nur testen will, ob die Diode1 (datenport.0) aus bleibt. Wenn der Ablauf des Programms betrachtet wird, passiert also nichts anderes, als dass alle Dioden(8Stück) über den datenport gesetzt werden. Anschließend wird Diode1 (datenport.0) ausgeschalten.

Diese Diode1 (datenport.0) bleibt allerdings nicht aus sondern geht nach etwa 2 sec. wieder an(was falsch ist). Die Disp. und das LCD hatte ich nur loggen wollen, sorry für die Verwirrung. Warteschleifen benötige ich deshalb nicht, da ich ja keinen Zustandswechsel betrachten will. Um es kurz zu machen habe sicher noch nicht so viel programmiert wie ihr. Aber um zum Beispiel eine Uhr zu programmieren reicht es bei mir auch. Meine ursprüngliche Frage war, ob von euch jemand eine Peilung von der Elektronik hat? Ein Problem in der Software kann ich ausschließen, nicht zuletzt aus dem Grund dass, bei Programmen die früher liefen der gleiche Fehler auftritt. Ausserdem kann ich einen auf dem Board integrierten Summer ohne Problem ansteuern, nur die Anzeigeelemente gehen nicht.
Kann es sein dass der Datenport, wo alle Anzeigeelemente dran hängen kaputt ist und wenn welche Bauteile da besonnders anfällig sind.

JMP loop

vielen Dank

Gruß monty

Winne
09.03.2006, 00:53
Sach doch nich imma Fetter zu mich, ich weiss doch dass ich Übbajewicht haben tu...:p

Alles sonst noch frisch, wo ist denn der Ed? Schon wieder auf Reisen;)?

Gruß Winnie

@ first, .....

@ seccond,

das weißder über allem steht,
bei mir meldet er sich nie ab, aber immer wenn ne Vermistenanzeige ergeht taucht er, wer weiß woher wieder auf.:)

Winne
09.03.2006, 00:57
INCLUDE 89c51AC2.mc
led BIT P0.0
datenport DATA P2 (datenport.0 = Diode1 ; datenport.1 = Diode2,usw.)

org 0h //geht das bei 51ern ? bei avr fängt dort ne interruptvectortabelle an
JMP main


main:

SETB led (lässt es zu den Zustand der Dioden zu verändern)
MOV A,#0d
MOV datenport,A (alle Ports werden auf Masse gezogen, die Dioden leuchten)
SETB datenport.0 (datenport.0 wird auf 1 gesetzt die Diode 1 von 8 geht aus.

loop:

In der Schleife soll nichts gemacht werden. Da soll er nicht wieder raus, da ich ja nur testen will, ob die Diode1 (datenport.0) aus bleibt. Wenn der Ablauf des Programms betrachtet wird, passiert also nichts anderes, als dass alle Dioden(8Stück) über den datenport gesetzt werden. Anschließend wird Diode1 (datenport.0) ausgeschalten.

Diese Diode1 (datenport.0) bleibt allerdings nicht aus sondern geht nach etwa 2 sec. wieder an(was falsch ist). Die Disp. und das LCD hatte ich nur loggen wollen, sorry für die Verwirrung. Warteschleifen benötige ich deshalb nicht, da ich ja keinen Zustandswechsel betrachten will. Um es kurz zu machen habe sicher noch nicht so viel programmiert wie ihr. Aber um zum Beispiel eine Uhr zu programmieren reicht es bei mir auch. Meine ursprüngliche Frage war, ob von euch jemand eine Peilung von der Elektronik hat? Ein Problem in der Software kann ich ausschließen, nicht zuletzt aus dem Grund dass, bei Programmen die früher liefen der gleiche Fehler auftritt. Ausserdem kann ich einen auf dem Board integrierten Summer ohne Problem ansteuern, nur die Anzeigeelemente gehen nicht.
Kann es sein dass der Datenport, wo alle Anzeigeelemente dran hängen kaputt ist und wenn welche Bauteile da besonnders anfällig sind.

JMP loop

vielen Dank

Gruß monty

hast du auch brav alle interrupts gesperrt und freien portpins irgendwo festgenagelt, und überhaupt wie erzeugst du den takt ?

Winnie
09.03.2006, 11:48
das weißder über allem steht,

Nein, ich weiß es eben nicht, sonst würde ich nicht fragen. Aber schön das Du Dich noch an mich erinnerst:p.

Gruß Winnie

PS. Apropos weiß, darf man in diesem Schweineland eigentlich noch weiß und schwarz sagen, oder ist das auch schon verboten?

monty
09.03.2006, 11:50
Hallo Männer,

werde wohl für das Problem keine Lösung finden, da ich mich in der Elektronik nicht so gut auskenne. Habe jetzt beschlossen das Board einzuschicken. Also vielen Dank nochmal für Eure Hilfe!!!

Gruß Monty :)

Sebastian Schümann
15.03.2006, 13:58
Hallo.

Ein Latch hat bei diesem Board tatsächlich den Geist aufgegeben, so das alles, was mit Displays zu tun hatte, nicht mehr funktionierte.

Wir haben das Board repariert, es sollte nun keine Schwierigkeiten mehr machen :)

monty
15.03.2006, 16:26
Vielen Dank,

für die schnelle Reparatur. Wollte nochmal erwähnen, dass euer Board wirklich Spitze ist. Und auch der Service ist einzigartig!!!

monty :)

Winnie
16.03.2006, 07:32
Schön das man auch davon hier erfährt. Lobenswert, immer weiter so:).

Gruß Winnie