Hi, ich hab da mal wieder ein Problem. 16F84A Ich möchte gerne ein ganz einfaches Lauflicht haben, aber leider macht mir der Port B zu schaffen. Port B0/1 wollen einfach nicht mit machen. Der rest arbeitet einwandfrei. Muss ich irgend wo noch was mit dem Interrupt umstellen. ich find einfach keine Lösung. Habe das Programm auf 2 PIC´s laufen lassen und es ist auf beiden das selbe problem. Sollte jemand einen 16F84A rumliegen haben kann er ja mal probieren ob bei ihm das selbe passiert. schon mal danke für eure Hilfe. ;********************************************************************** ; This file is a basic code template for assembly code generation * ; on the PIC16F84A. This file contains the basic code * ; building blocks to build upon. * ; * ; If interrupts are not used all code presented between the ORG * ; 0x004 directive and the label main can be removed. In addition * ; the variable assignments for 'w_temp' and 'status_temp' can * ; be removed. * ; * ; Refer to the MPASM User's Guide for additional information on * ; features of the assembler (Document DS33014). * ; * ; Refer to the respective PIC data sheet for additional * ; information on the instruction set. * ; * ; Template file built using MPLAB V4.00 with MPASM V2.20 and * ; MPLINK 1.20 as the language tools. * ; * ;********************************************************************** ; * ; Filename: Lauflicht-BK.asm * ; Date: 07.03.2007 * ; File Version: 1.0 * ; * ; Author: Jens Huettenrauch * ; Company: Selfmade * ; * ; * ;********************************************************************** ; * ; Files required: * ; * ; * ; * ;********************************************************************** ; * ; Notes: * ; * ; * ; * ; * ;********************************************************************** list p=16F84A ; list directive to define processor #include <p16F84A.inc> ; processor specific variable definitions __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _HS_OSC ; '__CONFIG' directive is used to embed configuration data within .asm file. ; The lables following the directive are located in the respective .inc file. ; See respective data sheet for additional information on configuration word. ;***** VARIABLE DEFINITIONS (examples) zeit250 Equ 0x22 ; Zähler für Warteschleife zeit1 Equ 0x23 ; Zähler für Warteschleife lauf Equ 0x24 ; Speicherzelle fuer Lauflicht ;************************************************************** ; Organiesirung org 0x00 ; Hier startet der Prozessor goto Main ; Springe zum Hauptprogramm org 0x04 ; Hier startet der Interupt wenn aktiv ;********************************************************************** ; Hauptprogramm org 0x10 Main ; los gehts mit dem Programm ; Port B auf Ausgabe stellen Init bsf STATUS, RP0 ; auf Bank 1 umschalten movlw B'00000000' ; W mit 0 Fuettern movwf TRISB ; Lade in Initregister B Bank 1 bcf STATUS, RP0 ; auf Bank 0 zurückschalten clrf PORTB ; alle LEDs ausschalten clrf lauf ; Speicherzelle auf def. Zustand bringen ; clrz ; clrc ; 1. LED einschalten Init1 movlw B'00000001' movwf lauf clrz clrc Lauf1 movfw lauf movwf PORTB call Wait250 bz Init2 rlf lauf goto Lauf1 Init2 movlw B'10000000' movwf lauf clrz clrc Lauf2 movfw lauf movwf PORTB call Wait250 bz Init1 rrf lauf goto Lauf2 ;********************************************************** ; Warteschleife 250 ms Wait250 ; 250 ms Pause movlw D'250' ; Zeitkonstante für 250ms movwf zeit250 ; Speicherzelle für 1 ms Multiplikator ;********************************************************** ; Warteschleife 1 ms Wait1 ; 1 ms Pause movlw .249 ; Zeitkonstante für 1ms movwf zeit1 ; Speicherzelle für Warteschleife Wai2 nop ; Warte einen Takt ab nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop decfsz zeit1,F ; verringere um eins goto Wai2 ; Ist 1ms vorbei decfsz zeit250,F; erringere um eins goto Wait1 ; Ist 250ms vorbei retlw 0 ; Springe zurück zum Call end ;*********************************************************************
Hi,
ich bin ja sowas von sau blöd das tut schon weh!!!
Port b0 und b1 waren mit einer Lötbrücke verbunden, deshalb war immer
PB0=PB1 klar das das nicht geht.
>> ich IDIOT <<
trotz dem danke
bis zum nächsten mal
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.