Hallo, da leider mein testboard kaputt ist wollte ich euch fragen ob das programm so funktioniert list p=16f84A #include <p16f84a.inc> __config _PWRTE_ON & _WDT_OFF & _XT_OSC ZAEHL1 equ 0c ;Erster Zaehler für Warteschleife ZAEHL2 equ 0d ;Zweiter Zaehler für Warteschleife ;******************************************Initialisierung************** ************* Org 0 init bsf STATUS, RP0 movwf B'00000000' movwf TRISB bcf STATUS, RP0 clrf PORTB ;*****************************************Programm********************** ************* loop bsf PORTB, 0 call Loop1 bcf PORTB, 0 call Loop1 goto loop Loop1 decfsz ZAEHL1,1 ;Ziehe 1 ab von 255 goto Loop1 ;wenn nicht 0, springe zu Loop1 decfsz ZAEHL2,1 ;Ziehe 1 ab von 255 goto Loop1 return end Danke im vorraus
>da leider mein testboard kaputt ist wollte ich euch fragen ob das >programm so funktioniert Da du nicht schreibst, was das Programm machen soll, kann dir keiner sagen, ob es das macht, was du willst. Ich vermute aber, du willst Pin B0 toggeln. Das müsste so funktionieren. Und - wer lehrt eigentlich immer soetwas: >Org 0 >init > bsf STATUS, RP0 > movwf B'00000000' > : Beim PIC16*84* liegen bei 0x0000 der Reset Vector und bei 0x0004 der Peripheral Interrupt Vector Da sollte man aus stiltechnischen Gründen nicht mit dem eigentlichen Code beginnen. Besser wäre generell eine Struktur wie:
1 | org 0x00 ; Reset Vector |
2 | goto Reset ; -> zur Reset Routine |
3 | |
4 | org 0x04 ; Peripheral Interrupt Vector |
5 | goto ISR ; -> zur Interrupt Service Routine |
6 | |
7 | |
8 | Reset: |
9 | abc..... ; hier irgendwelche initialisierungen |
10 | xyz..... ; hier irgendwelche initialisierungen |
11 | : |
12 | goto main ; und Programm starten |
13 | |
14 | ISR: |
15 | aaa..... ; Hier die Interrupt Service Routine |
16 | : ; (falls Interrupts verwendet werden |
17 | retfie ; und ISR verlassen |
18 | |
19 | main: |
20 | ; hier das Programm beginnen |
... was übrigens fehlt, ist das Initialisieren der Zählervariablen ZAEHL1 und ZAEHL2. Du gehst einfach davon aus, dass der Wert beim Programmstart 255(dez) ist - aber ist das denn sichergestellt? Ich glaube nicht. Das ist zwar hier, bei diesem Programm nicht besonders wichtig, aber du solltest dir angewöhnen, auch bei kleinsten Programmen auf solche Sachen zu achten.
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.