Hallo Gemeinde Ich bin neu hier und in Bezug auf PIC und Assembler ein absoluter Anfänger. Das möchte ich ändern. Mein Projekt ist eine PWM mit 1-Tastensteuerung mit PIC 16f84 gewollte Funktionen: Taste drücken(RB0) =einschalten PWM mit duty cycle x (RA0) Taste drücken kurz= duty cycle verändern oder als alternative andere PWM-Schleife ( PWM 2....10....aus ) Taste drücken lang (3 sec) = ausschalten oder als alternative sleep.( wenn so etwas funktioniert ) PIC 16f84 deshalb weil ich die Hardware PICEE (Elektor 2.-2002) besitze und lernen will. Mit Hilfe der Webseite von SPRUT und dem Datenblatt habe ich im MPLAB einige Asseblerzeilen geschrieben. Datei als Anhang als Text (mit .asm lande ich nach dem Absenden immer im Nirvana ) Einschalten funktioniert. PWM ist da. Mit dem Rest bin ich Gedanklich in einer Sackgasse gelandet und weiss erst einmal nicht weiter. Fehlversuche wurden, wenn nicht gleich wieder gelöscht im Code auskomentiert. Es handelt sich sicher um gravierende Strukturfehler, welche ich aber nicht sehe. für Konstruktive Kritik, Hilfestellung und Lösungsansätze währe ich dankbar. olaf
Hallo, bei Deiner Initialisierung der Ports hast Du die Umschaltung der Bänke nicht beachtet. PORTA und PORTB in Bank 0 TRISA und TRISB in Bank 1 sollte etwa so aussehen: BSF STATUS,RP0 ;Switch to register Bank 1 MOVLW B'11100000' MOVWF TRISA ;RA ports MOVLW B'00000001' MOVWF TRISB ;RB ports BCF STATUS,RP0 ;Switch Back to reg. Bank 0 CLRF PORTA ; CLRF PORTB ; Übrigens, das Programm ist ein fürchterliches Durcheinander. Besser Schritt für Schritt vorgehen und einzelne Funktionen testen. MfG
@atlas Danke für deine Antwort Das mit dem Durcheinander ist Richtig. Für mich war es am Anfang Logisch. Die Historie: ich wollte einene PWM ( LED anschalten ging ja ) Also gelesen und Beispiele angeschaut PWM-Modul für RB0 geschrieben --ging. so nun extra anschalten: Also RA0 als Eingang - PICEE hat da eine Taste. wo abfragen? nach der Initialisierung-wie? Mit btfss ,0 -aha wenn 0 zurück wenn 1 weiter -geht. So nun läuft das Programm ja in einer Schleife. Wohin mit der Nächsten Tastenabfrage? Gelesen Interrupt -aha beim 16f84 aber nur an PORTB. also PWM und Tastenabfrage getauscht. War Nützlich dass ich Inzwischen auch was über equ gelesen hatte. Bei SPRUT war ein Beispiel wie eine Interruptservicroutine auszusehen hat. Gehört also mit an den Anfang nach- org00- org04. Hatte gelesen oder so verstanden, der 16f84 kann aus jeder Bank auf das Tristate-Register zugreifen. Hat ja vorher Funktioniert oder ist nicht Aufgefallen. Mein Problem beim Lesen und Verstehen diverser Beispiele ist, gibt es immer unterschiedliche Strukturen. Die zu Begreifen und Umzusetzen ist schwierig. Da ich noch kein Beispiel gefunden habe, wie ein kompletter Programmablauf auszusehen hat. Deshalb meine etwas konfuse Bausteinmethode. Dies ist ja der Grund für meine Fragen . Das mit der Bankumschaltung werde ich mal versuchen umzusetzen. Danke olaf
Hi kannst du mir das Programm mal schicken an tolledaniel@gmail.com brauch das für die schule ;)
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.