Hallo zusammen, bin absouluter Anfänger was Assembler und das programmieren von Mikrocontrollern.Villeicht kann mir einer bei helfen. Benutze das mp lab ide von microchip. Möchte als erstens Eingänge und Ausgänge definieren .Hab das so gemacht aber etwas stimmt nicht. Danke im Voraus bin für jede Hilfe dankbar. Grüss Caine list p=16f877 ;der Prozessortyp wird festgelegt include "p16f877.inc" ;inkluzivi podatci org 0x00 goto main init bsf STATUS, RP0 ; auf Bank 1 umschalten movlw D'00000000' ; PortB alle output movwf TRISB bcf STATUS, RP0 ; auf Bank 0 schalten clrf PORTB ; alle LEDs ausschalten clrf w bsf STATUS, RP0 ; auf Bank 1 umschalten movlw C'11111111' ;PortB alle output movwf TRISC bcf STATUS, RP0 ; auf Bank 0 schalten end
d.caine schrieb: > org 0x00 > goto main > > init > > bsf STATUS, RP0 ; auf Bank 1 umschalten Wo ist denn dein "main"? Und 'goto' ist doch auch bei Microship kein Assembler Befehl, oder? Da kommt doch bestimmt irgend ein Jump-Befehl zur Sprungmarke 'init' hin. Ich kenne mich leider mit den PIC's und Microchips Assembler nicht aus. Steffen
Hallo Caine, > Möchte als erstens Eingänge und Ausgänge definieren .Hab das so gemacht > aber etwas stimmt nicht. Danke im Voraus bin für jede Hilfe dankbar. WAS stimmt nicht? > goto main Muss heissen "goto init" 1. Du hast nur von In auf Out umgeschaltet, aber nicht definiert, ob die Portausgaenge H oder L sein sollen 2. bei PIC mit ADC musst Du zusaetzlich dort noch ein Configurationsbit setzen, steht aber prima im Datenblatt! Ausserdem kannst Du in MPLAB im Simulator genau sehen was passiert, dann schreib hier bitte nicht "IRGENDWAS" stimmt nicht! Gruss Michael
list p=16f877 #include <P16f877.INC> org 0x00 Init bsf STATUS, RP0 ; auf Bank 1 umschalten movlw B'00000000' ; PortB alle output movwf TRISD bcf STATUS, RP0 ; auf Bank 0 schalten clrf PORTD ; alle LEDs ausschalten clrf W bsf STATUS, RP0 ; auf Bank 1 umschalten movlw B'11111111' ; PortC alle input movwf TRISC bcf STATUS, RP0 ; auf Bank 0 zurückschalten goto main main end So jetzt habe ich alles...der Fehler war das ich C'00000000' gemacht habe weil ich dachte ..Port C also C'00000000' . Is aber quatsch B steht nämlich für ein Zahlenwert von 0 bis 7 mit trisc setze ich dann diesen wert bei port c . main und goto noch hinzugefügt.
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.