Hi, Kann mir mal jemand sagen was dieses Programm macht ^^ Also ich habe es geschrieben für einen Hausaufgabe bin mir aber nicht sicher ob es korekt läuft weil ich die Simulation von MPLAB nicht richtig rafe,,, hier mal das Programm: ;project1 ;----------------------------------------------------------------------- ----- list p=16f84a ; processor pic16f84a #include <p16f84a.inc> ; verwendet definition ;----------------------------------------------------------------------- ----- __CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_RC_OSC ; voreinstellungen ;----------------------------------------------------------------------- ----- org 0x00 ; reset adresse 00(hex) goto main ; sprung zu main ;----------------------------------------------------------------------- ----- main ; main Programm bsf STATUS,RP0 ; schaltet auf bank1 bcf TRISB,0 ; setzt RB0 auf out bcf TRISB,1 ; setzt RB1 auf out bcf TRISB,2 ; setzt RB2 auf out bcf TRISB,3 ; setzt RB3 auf out bcf TRISB,4 ; setzt RB4 auf out bcf TRISB,5 ; setzt RB5 auf out bcf TRISB,6 ; setzt RB6 auf out bcf TRISB,7 ; setzt RB7 auf out bcf STATUS,RP0 ; schaltet zurück auf bank0 loop bcf PORTB,1 ; RB1 = 0 (0V), led aus bsf PORTB,0 ; RB0 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,0 ; RB0 = 0 (0V), led aus bsf PORTB,1 ; RB1 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,1 ; RB1 = 0 (0V), led aus bsf PORTB,2 ; RB2 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,2 ; RB2 = 0 (0V), led aus bsf PORTB,3 ; RB3 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,3 ; RB3 = 0 (0V), led aus bsf PORTB,4 ; RB4 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,4 ; RB4 = 0 (0V), led aus bsf PORTB,5 ; RB5 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,5 ; RB5 = 0 (0V), led aus bsf PORTB,6 ; RB6 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,6 ; RB6 = 0 (0V), led aus bsf PORTB,7 ; RB7 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,7 ; RB7 = 0 (0V), led aus bsf PORTB,6 ; RB6 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,6 ; RB6 = 0 (0V), led aus bsf PORTB,5 ; RB5 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,5 ; RB5 = 0 (0V), led aus bsf PORTB,4 ; RB4 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,4 ; RB4 = 0 (0V), led aus bsf PORTB,3 ; RB3 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,3 ; RB3 = 0 (0V), led aus bsf PORTB,2 ; RB2 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten bcf PORTB,2 ; RB2 = 0 (0V), led aus bsf PORTB,1 ; RB1 = 1 (5V), led ein nop ;warten nop ;warten nop ;warten goto loop ; springt zur loop zurück ;----------------------------------------------------------------------- ----- end ; ende der datei.
Das Programm zeigt ein paar LED mehr oder weniger hell gedimmt. Mehr tut es nicht. Für die ursprüngliche Intention, ein Knight-Rider Lauflicht zu programmieren, sind die Wartezeiten viel zu kurz. Die 3 nop arbeitet der Prozessor in (geschätzten) weniger als 100µs ab. Das Lauflicht wird also in einer Sekunde sicherlich ein paar Hundert mal hin und her fetzen. Zu schnell, als das dein Auge das auflösen kann. Du siehst nur noch einen Lichtstreifen und keinen hin und her wandernden Punkt.
nehmen wir mal an die nop reichen für 1sec würde es dann ein lauflicht ergeben das nach hinten und dann wieder zurück läuft ? wenn ja dann passt es schon unser lehrer hat gesagt 3 nop reichen um eine LED blinken zu lassen auf unserem Board.
Acker schrieb: > nehmen wir mal an die nop reichen für 1sec würde es dann ein lauflicht > ergeben das nach hinten und dann wieder zurück läuft ? So sieht es wohl aus. Ich denke du hast das Programm geschrieben? Ob sich bei dir ein heller Lichtpunkt bewegt oder eine dunkle Lichtlücke, hängt davon ab, wie die LED angesteuert werden. Das kann ich von hier nicht beurteilen. > wenn ja dann passt es schon unser lehrer hat gesagt 3 nop reichen um > eine LED blinken zu lassen auf unserem Board. Autsch!
Ich verstehe nun deine antwort nicht xD Funktioniert das lauflicht oder nicht ? die Zeit der nop´s lassen wir mal aus es geht mir grade um das prinzip das ist unser erstes programm wir haben noch nie was mit Microcontrollern gemacht des sollte ein crash kurs seien um einen einstieg zu finden und ich denke mal mein Lehrer weiss wie das Board von uns funktioniert der ist Dipe Ing und hat auch bevor er lehrer wurde genug mit MC´s gemacht also denke ich das mit den 3 nops wird schon stimmen wie ers gesagt hat. ich will nur wissen ob das lauflicht so funktioniert das ich mir sicher seien kann das ich denn anfang vom progen in asm richtig verstanden habe. MFG Dennis Acker
Acker schrieb: > Ich verstehe nun deine antwort nicht xD > > Funktioniert das lauflicht oder nicht ? die Zeit der nop´s lassen wir > mal aus es geht mir grade um das prinzip das ist unser erstes programm > wir haben noch nie was mit Microcontrollern gemacht brenn es in den Prozessor und probiere es aus! Du bringst dich doch um den halben Spass an der ganzen Sache! > kurs seien um einen einstieg zu finden und ich denke mal mein Lehrer > weiss wie das Board von uns funktioniert der ist Dipe Ing und hat auch > bevor er lehrer wurde genug mit MC´s gemacht also denke ich das mit den > 3 nops wird schon stimmen wie ers gesagt hat. Das denke ich nicht, aber das ist ein anderes Kapitel. > ich will nur wissen ob das lauflicht so funktioniert das ich mir sicher > seien kann das ich denn anfang vom progen in asm richtig verstanden > habe. Kannst du es assemblieren? Wenn ja, dann hast du schon mal wenigstens Befehle benutzt, die es tatsächlich gibt und auch sonst keine Tippfehler gemacht. Brenn es in den µC und teste es. Testen macht mehr als 60% der Softwareentwicklung aus. Und wenn du es im Moment nur simulieren kannst, dann musst du dich mit deiner Simulationsumgebung vertraut machen. Du wirst noch viele, viele Stunden mit ihr verbringen. Je besser du sie jetzt beherrschen lernst, desto einfacher hast du es in der Zukunft. (Was soll den sonst rauskommen, wenn 7 Leute in einer Reihe sitzen und nacheinander jeder eine Tafel hochhält, ein wenig wartet und dann die Tafel wieder senkt während der nächste seine Tafel hochhält)
Acker schrieb: > Kann mir mal jemand sagen was dieses Programm macht ^^ > > Also ich habe es geschrieben für einen Hausaufgabe bin mir aber nicht > sicher ob es korekt läuft weil ich die Simulation von MPLAB nicht > richtig rafe,,, Dann ist dir jetzt wahrscheinlich auch klargeworden, warum man im Kommentar ein bisschen mehr als "LED ein", "LED aus" und "warten" schreiben soll. ;-)
Tip schrieb: > Acker schrieb: >> Kann mir mal jemand sagen was dieses Programm macht ^^ >> >> Also ich habe es geschrieben für einen Hausaufgabe bin mir aber nicht >> sicher ob es korekt läuft weil ich die Simulation von MPLAB nicht >> richtig rafe,,, > > Dann ist dir jetzt wahrscheinlich auch klargeworden, warum man im > Kommentar ein bisschen mehr als "LED ein", "LED aus" und "warten" > schreiben soll. > > ;-) ich weiss ja was es machen soll ich habe es erst gestern geschrieben es ist aber der einstieg in die Mikrocontroler Technick deswegen will ich lernen dabei und wissen ob mein erstes programm funktioniert damit ich daraus lerne ^^
Acker schrieb: > ist aber der einstieg in die Mikrocontroler Technick deswegen will ich > lernen dabei und wissen ob mein erstes programm funktioniert damit ich > daraus lerne ^^ OK. Wir helfen hier oft Leuten. Allerdings sind die dann schon auf einem etwas höherem Niveau. Nichts desto trotz ist dein bester Lehrmeister immer noch dein µC. Denn der verzeiht nichts, der beschönigt nichts, der übersieht nichts. Der führt nur das aus, was du ihm aufträgst. Und wenn der µC nicht das macht, was du willst, dann war dein Programm falsch. So einfach ist das. Allerdings gilt der Umkehrschluss nicht: Wenn es so aussieht, als ob der µC genau das macht was du willst, heißt das nicht unbedingt, das nicht doch noch ein Fehler enthalten ist (ist aber bei deinem Mini-Programm unwahrscheinlich. Kommen ja nur 3 verschiedene Befehle vor und das dann auch noch in einem sehr übersichtlichen Ablauf). Was willst du jetzt hier hören? Das dein Programm ein Lauflicht macht? Das wird dir hier so keiner direkt sagen, denn das kannst du auch mit deinem µC leicht feststellen. Brenn das Programm rein und sieh nach, ob die LED in der richtigen Reihenfolge aufleuchten und verlöschen. Dabei lernst du viel mehr, als wenn dir hier wer ein "Thumbs Up" gibt (was er sowieso nicht tun kann, denn dazu müsste er deine komplette Umgebung kennen)
Acker schrieb: > nehmen wir mal an die nop reichen für 1sec würde es dann ein lauflicht > ergeben das nach hinten und dann wieder zurück läuft ? > > wenn ja dann passt es schon unser lehrer hat gesagt 3 nop reichen um > eine LED blinken zu lassen auf unserem Board. Man könnte den PIC mit einem externen Takt von z.B.: 10 Hz betreiben. Aus Datenblatt: • Operating speed: DC - 20 MHz clock input Gruß John
Ich sehe gerade, dass in der CONFIG _RC_OSC eingestellt wird. Es ist damit bestimmt möglich sehr niedrige Taktfrequenzen einzustellen. Gruß John
John schrieb: > Ich sehe gerade, dass in der CONFIG _RC_OSC eingestellt wird. Es ist > damit bestimmt möglich sehr niedrige Taktfrequenzen einzustellen. Glaub ich unbesehen. Für das erste Programm mag das auch reichen und ich bin sicher sein Lehrer wird das ganz schnell ändern und den µC wieder auf normale Taktfrequenz zurückstellen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.