Hallo, ich habe angefangen mit Assembler herumexperimentieren da ich das für meine Abschlußprüfung brauchen werde. Ich habe schon verschiedene befehle versucht, es kommt das gleiche raus. Beim einschalten soll eine LED leuchten am RA1, das macht sie nur wenn man mit dem Finger den Pin berührt dann fängt sie an zu leuchten ansonsten tut sich nichts. Sie geht auch an wenn man mit dem Spitze vom Multimeter dran geht, danach leuchtet sie bis man die Spannung nicht unterbricht. Das ist doch nicht normal oder ? ich habe auch schon anderen Port versucht, wenn man die Pin´s 36,37,38 berührt geht sie aus. Kling komisch, aber was kann das sein ? Kann mir auch jemand ein Rat geben wo man die interne Frequenz einstellen kann, wenn ich richtig verstannden habe kann man ja von 8 MHz to 31 kHz einstellen mit bits: IRCF<2:0>: Internal Oscillator Frequency Select bits 111 = 8 MHz 110 = 4 MHz (default) 101 = 2 MHz 100 = 1 MHz 011 = 500 kHz 010 = 250 kHz 001 = 125 kHz 000 = 31 kHz (LFINTOSC) Wo gibt man diese bits den ein ? __CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT __CONFIG _CONFIG2, _WRT_OFF & _BOR21V RESET_VECTOR CODE 0x0000 ; processor reset vector nop goto start ; go to beginning of program ;********************************************************************** ; * ; Main * ;********************************************************************** start BANKSEL PORTA ; CLRF PORTA ;Init PORTA BANKSEL ANSEL ; CLRF ANSEL ;digital I/O BCF STATUS,RP1 ;Bank 1 BANKSEL TRISA ; MOVWF TRISA ;as outputs bcf STATUS,RP0 bsf PORTA,1 END ; directive 'end of program' Ich würde ihnen dankbar sein wenn jemand Zeit hätte und mir helfen könnte.
> MOVWF TRISA ;as outputs
Das wird (wenn überhaupt) nur zufällig das richtige Ergebnis bringen,
nämlich dann, wenn im W-Register der Wert 0 steht.
Besser funktioniert an dieser Stelle
CLRF TRISA
danke, die LED geht jetzt fast immer von alleine an und flimmert nicht, aber auch nicht immer, man hat so ein Gefühl das es ein Schupser fehlt das die anfängt an zu leuchten.
Wenn man immer den Finger am LED Beinchen plus hält leuchtet die LED sofort beim einschalten, ansonsten kommt das mit Zögerung oder überhaupt nicht. MCLR habe ich über 1k Ohm an VDD dran.
Nach dem Befehl bsf PORTA,1 rennt der PIC weiter ins Leere, du musst ihm sagen das er stehenbleiben soll, also ein goto auf sich selbst: marke: goto marke
am ende kommt ein fehler " 67 : Symbol not previously defined (marke)" start BANKSEL PORTA ; CLRF PORTA ;Init PORTA BANKSEL ANSEL ; CLRF ANSEL ;digital I/O BCF STATUS,RP1 ;Bank 1 BANKSEL TRISA ; CLRF TRISA ;as outputs bcf STATUS,RP0 bsf PORTA,1 goto marke END ; directive 'end of program'
Alexander K. schrieb: > IRCF<2:0>: Internal Oscillator Frequency Select bits > 111 = 8 MHz > 110 = 4 MHz (default) > 101 = 2 MHz > 100 = 1 MHz > 011 = 500 kHz > 010 = 250 kHz > 001 = 125 kHz > 000 = 31 kHz (LFINTOSC) > > Wo gibt man diese bits den ein ? Im Register OSCCON (bit6-4). Alexander K. schrieb: > goto marke marke goto marke
Werde ich nächstes mal beachten, jetzt kann ich nicht mehr ändern. Großes dank jetzt leuchtet sie immer auf, auch wenn es manchmal immer noch mit Verzögerung.
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.