Schleife

Im Unterforum Microcontroller - Beschreibung: Hardware - Software - Ideen - Projekte

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 28 9 2024  23:23:52      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Microcontroller        Microcontroller : Hardware - Software - Ideen - Projekte

Gehe zu Seite ( Vorherige Seite 1 | 2 )      


Autor
Schleife

    







BID = 34829

mfd2004

Neu hier



Beiträge: 42
Wohnort: Duderstadt
ICQ Status  
 

  


Ahhhh .... Ich brauche deine hilfe!!!!! ich habe das zwar mit dem include hinbekommen .... aber er zeigt jetzt andere fehler an! Och maaaan! irgendwie .... weis nicht, hasse ich es soviel hilfe in anspruch zu nehmen! Tut mir leid, das ich dich so belagere!
include konnte ich durch das abändern von .mcu durch .mc korrigieren!
Wofür brauch denn der uP include? der nächste fehler war $NOMOD51 ich weis uach nciht, was der befehl bewirkt ... nehm mal an, das er die assemblerversion darstellt!
So, nach dem löschen dieser zeile hatte zeigte er noch einen fehler an. Und zwar: MOV P1.2,#0 oder bzw. NSignal: #1!
Er sagt: Dieser Befehl ist speziell zum Ansprechen von Bytes vorgesehen, die Bezeichnung P1 ist aber als Bit definiert!
Wie soll man dann einen Ausgang auf 1 bzw. 0 setzten können???
Sicher gibt es noch ein paar andere Fehler meinem Programm aber er führt ja alles nach der Reihe auf ...
Ich weis nicht .... irgendwie ist das alles ziemlich demotiviernd! Aber ich bleibe an der Sache dran, bis ich es hinbekommen habe!!!!
Ach ja ... mein Buch ist das Microcontroller Kochbuch! Das ist nicht übel! Nur habe ich keine Brenner für den gefunden. Also habe ich mich auf der Batronixseite einen geholt. Nebenbei habe ich eine Seite gefunden, die ich recht gut finde. http://www.erikbuchmann.de
Kannst du mir irgendwie helfen da einen besseren einstieg zu bekommen? Oder meinst du, das ich mich so weiter durchkämpfen sollte und das der Weg der richtige ist?!

mfd2004

BID = 35048

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach

 

  


Zitat :
Wofür brauch denn der uP include?

Das ist eine Textdatei in der numerischen Werten sprechende Namen zugewiesen werden.
Auch bestimmte Tests und Verarbeitungsanweisungen für den Assembler können darin enthalten sein.
Der Assembler liest die darin enthaltenen Anweisungen in dem Moment, in dem er über die $include-Anweisung stolpert.
Schau einfach mal mit dem Editor in die Datei hinein.
Du kannst dort auch selbst Eintragungen machen, wenn Du beim Programmieren häufig bestimmte Namen verwenden willst.
Besser ist es allerdings, wenn Du dafür eine eigene Include-Datei anlegst, und dann auch ein eigenes $include -Statement verwendest.


Zitat :
der nächste fehler war $NOMOD51 ich weis uach nciht, was der befehl bewirkt ... nehm mal an, das er die assemblerversion darstellt!

Schlecht wenn Du's nicht weißt. Ich kann das wirklich nicht nachsehen.
Das findest Du im Handbuch des Assemblers. Generell sehen so Anweisungen aus, die dem Assembler Hinweise geben, wie er Dein Programm zu verarbeiten hat. Beispielsweise mit welchem Prozessor er es zu tun hat, wie das Listing auszusehen hat, der Titel des Programms, die Ausführlichkeit der Fehlermeldungen. Auch Anweisungen, die den Assembler garnicht interessieren, sondern die er z.B. einfach an das Programmiergerät weitergibt, können so aussehen.


Zitat :
Wie soll man dann einen Ausgang auf 1 bzw. 0 setzten können???

Das wäre nicht der einzige µP bei dem das nicht ginge.
Dann baut man sich, beispielsweise mit AND oder OR, in einem Register das richtige Bitmuster zusammen und beschreibt dann eben alle Bits des Ports gleichzeitig, mit den richtigen Werten.
Dein µP hat aber beispielsweise den SETB-Befehl.


Zitat :
Kannst du mir irgendwie helfen da einen besseren einstieg zu bekommen? Oder meinst du, das ich mich so weiter durchkämpfen sollte und das der Weg der richtige ist?!

Wenn Du englisch kannst, kann ich Dir nur wärmstens die Manuals und Beispiele des Herstellers empfehlen.
Daß Du so kämpfen mußt, liegt zum Teil daran, daß Du Dir einen Chip ausgesucht hast, der seine Blütezeit schon etwas hinter sich hat. Es gibt populärere Chips, zu denen auch sehr komfortable Entwicklungssysteme verfügbar sind.
Kämpfen ist aber nicht grundsätzlich schlecht. Dabei lernt man viel. Vielleicht hast Du ja auch einen Grund warum es ein 8051-Derivat sein muß. Beispielsweise Du hast zwei Schuhkartons voll mit diesen Chips.
Auch wenn das Design alt ist, so ist es noch längst nicht tot. Es gibt durchaus Firmen, die auch jetzt noch neue Derivate, auch sehr viel schnellere auf den Markt bringen.


Hier noch eine Skizze, wie ich die Grundversion des Lauflichts programmieren würde:





; npn-Transistoren als LED-Treiber an PORT1.0...PORT1.7 bis PORT2.0 und PORT2.1

MainLoop:
MOV R1,#00000001b ; Die 1 wird gleich die LED an P1.0 anzünden
MOV R2,#0 ; das geht gleich an P2
MOV R3,#10; NextLed-Schleife 10 mal ausführen

NextLed:
MOV A,R1
MOV PORT1,A
MOV A,R2
ORL A,#11111100b ; damit Port2 Bit 2...7 als Eingänge verfügbar bleiben mit 1 beschreiben.
MOV PORT2,A

MOV A,R1
CLR C ; Übertrag löschen, sonst rutscht er gleich in Bit 0
RLC A ; bit 7 steht jetzt im C
MOV R1,A
MOV A,R2
RLC A ; jetzt ist das alte R1.7 ins R2.0 gekommen
MOV R2,A ; neues Muster fertig

TwiddleThumbs:
DJNZ R4,TwiddleThumbs
DJNZ R5,TwiddleThumbs ; ein bischen warten

DJNZ R3,NextLed ; neuberechnetes Muster an LED ausgeben.

SJMP MainLoop ; alle LEDs waren dran, dat janze von vorn




Man könnte das noch etwas kürzer programmieren, aber dann leidet die Transparenz.


[ Diese Nachricht wurde geändert von: perl am 18 Okt 2003  3:24 ]

BID = 35389

mfd2004

Neu hier



Beiträge: 42
Wohnort: Duderstadt
ICQ Status  

Danke!
Habe zwar nicht auf anhieb ganz durchsteigen können was du mir da vorschlägst .... weil mir sicher einiges Grundwissen fehlt .... aber ich habe beim Betronix Prog-Studio eine Einleitung gesehen ... und die arbeitet auch mit beispielen, wo ich gut mitkomme .... :)
Auf jedenfall vielen danke!! Du hast mich um einiges weitergebracht ....

mfd2004

PS.: Mach dich schon mal auf weitere Fragen gefasst, wenn ich mal wieder irgendwo hängen bleibe!

BID = 35443

perl

Ehrenmitglied



Beiträge: 11110,1
Wohnort: Rheinbach


Zitat :
Habe zwar nicht auf anhieb ganz durchsteigen können was du mir da vorschlägst

Kein Wunder. Ich hatte 'nen Fehler im Kommentar , der Code war aber richtig.

_________________
Haftungsausschluß:



Bei obigem Beitrag handelt es sich um meine private Meinung.



Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.



Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !

BID = 35628

mfd2004

Neu hier



Beiträge: 42
Wohnort: Duderstadt
ICQ Status  

Hi!
Also ich habe in den letzten Tagen viel zu tun gehabt und bin dazu nicht gekommen. Jetzt sitz ich aber davor und versuch den Code zu analysieren, so das ichs versteh!

Habe verständniss Fragen:

1.

Zitat :

MOV PORT2,A

Wenn ich das jetzt richtig verstanden habe, ist es so, wenn man P1.2 schreibt, das man den einzelnen PIN ansteurt. Wenn man nun aber PORT2 schreibt, wären alle Ports von 2 angesprochen. (P1.1, P1.0, P1.3, .... ) Also ist das jetzt so, das er das Byte, das im Akku steht auf die Pins von 2 verteilt. Von der logik her muss das richtig sein!!!!!!!

2.

Zitat :

CLR C ; Übertrag löschen, sonst rutscht er gleich in Bit 0

So, jetzt zu einer Sache, die ich nicht unbedingt versteh .... Das carry-flag kann ich als Zwischenspeicher sehen, den der uC automatisch nutzt?? Oder wieso setzt du das Carry Flag auf null???? In Bit 0 .... !? Ist das C net schon von vornerein leer?

3.

Zitat :

DJNZ R4,TwiddleThumbs
DJNZ R5,TwiddleThumbs ; ein bischen warten

Hast du da nicht was vergessen? Und zwar R4 auf #FFh zu setzten?

4.
Erst hab ich gedacht, das das kein Lauflicht sein kann, da er ja immer nur Nullen nachschiebt. (c) Aber dann ist mir ja eingefallen, weshalb du bei PORT2 noch die andern auf 1 gesetzt hast. Denn er schiebt die 1 ja wieder rein ... (in R1)! So, habe aber zwei Fehler gefunden! (Glaub ich) Denn das Lauflicht wird nur in eine richtung laufen. Man müsste die Bits quasi wieder zurück schieben ... und das nächste ist, das wenn die letzte led leuchtet das ganze ein wenig dauert, bis der "wurm" von vorne wieder anfängt zu laufen.
Weil: Die Ports 1.2 bis 1.7 nicht angeschlossen sind er aber das bit dort noch durchschieben muss um wieder bei port1.1 anzukommen.

Bin dir echt dankbar!!!! Durch diese Analyse hab ich wirklich vieles verstanden, was mir vorher ein rätsel war .... EHRLICH!!!!!!!!!! DANKE!!!!!!

Verrat mir vorerst noch nicht, wie die "Fehler" oder das Lauflicht, wie ich es mir vorstelle programmiert wird ... werde mich erstmal selbst dran machen und dann mal wieder um dein Wissen bitten mir das wieder gerade zu richten!!!!! :)

Hoffe, ich hab jetzt nichts falsches gesagt und alles richtig interpretiert!!!!!

MFG
mfd2004

BID = 35629

mfd2004

Neu hier



Beiträge: 42
Wohnort: Duderstadt
ICQ Status  

Hab noch was vergessen .. meine natürlich auch bei Punkt 3 das andere Register R5!
Und bei punkt 4 hab ich mich auch verschrieben! meinte eigentlich Port 2.2 - 2.7!

Nochmals Danke!!!! :)

mfd2004


Vorherige Seite      
Gehe zu Seite ( Vorherige Seite 1 | 2 )
Zurück zur Seite 0 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 17 Beiträge im Durchschnitt pro Tag       heute wurden bisher 36 Beiträge verfasst
© x sparkkelsputz        Besucher : 182091488   Heute : 5970    Gestern : 6155    Online : 827        28.9.2024    23:23
5 Besucher in den letzten 60 Sekunden        alle 12.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0247490406036