Hi,
15Jahre , sind ne ganze Menge![]()
Ich hab mal das ganze noch mit Unterprogranmm gemacht
Ich glaube das würde auch ohne den Code am Anfang funktionieren, obwohl ich gar nicht weiss wie das benutzen kann^^ Code funktioniert aber habs getestet.Code:w_temp EQU 0x70 ; context saving status_temp EQU 0x71 ; context saving INTSERV movwf w_temp ; W register retten movf STATUS,w ; status register nach W register movwf status_temp ; STATUS register retten IntEnd movf status_temp,w ; STATUS register movwf STATUS ; wieder herstellen swapf w_temp,f swapf w_temp,w ; W register wieder herstellen ;***************************************************************** ;Programm ;***************************************************************** movlw 3 movwf 0x20 ; Speicherzelle wird die Zahl3 geladen anf btfsc PORTA, 0 ; Taster abfragen - Taster gedrückt -> zur Zählschleife goto anf ;************************************************************** call z_schleife ; Unterprogrammm aufrufen ;*************************************************************** t_los btfss PORTA, 0 ;Taster abfragen - Taster los -> zum Counter goto t_los ;*************************************************************** call z_schleife ;**************************************************************** decfsz 0x20, 1 ; Counter = 3 goto anf bsf PORTB, 0 loop goto loop ;************************Unterprogramm**************************** ;20000 Takte z_schleife movlw d'100' movwf 0x21 S2 movlw d'200' movwf 0x22 S22 decfsz 0x22, 1 goto S22 decfsz 0x21, 1 goto S2 return ;****************************************************************** end
Kann mir jemand eklräen was man dabei beachten muss, robotcheck hat
was von W-Register retten geschrieben, was hat es damit auf sich ? Bei sprut konnt eich nix dazu finden sowie hier im Wiki, oder bin ich blind=?![]()
Mfg
Mfg







Zitieren

Lesezeichen