Autor |
Simpler asmCode, funzt jedoch nicht wie erwartet... |
|
|
|
|
BID = 144734
abracadabra Stammposter
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 361
|
|
Nabend!
Habe hier den Auszug:
list p=16f84a
#include "P16F84A.INC"
bsf STATUS, RP0
movlw D'00000000'
movwf TRISB
movlw D'00000000'
movwf PORTB
bcf STATUS, RP0
movlw D'00000000'
movwf 0x4F
movf 0x4F,PORTB
loop
incf 0x4F,1
movwf PORTB <---------- Diese Stelle hier!
goto loop
end
An der besagten Stelle wird der wert des Arbeitsregisters nicht in das PORTB Register kopiert..
aber wieso nicht?
Normalerweise sollte zuerst 1 nach PORTB
dann 2 nach PORTB usw..
oder 00000001 nach PORTB
.... 00000010 nach PORTB
.... 00000011 nach PORTB
Wenn ich das ganze in MPLAB simuliere dann sehe ich die Bits des PORTB Registers unverändert..
Hoffe jemand kann mich auf den Fehler aufmerksam machen.
Gruß |
|
BID = 144741
Her Masters Voice Inventar
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 5308 Wohnort: irgendwo südlich von Berlin
|
|
loop
incf 0x4F,1 <---------- Diese Stelle hier!
movwf PORTB
goto loop
Du zählst zwar das Register hoch aber die 1 bewirkt, dass das Ergebnis in 4F und nicht in W abgelegt wird. W bleibt also unverändert und das wäre "0"
denk ich mal...
_________________
Tschüüüüüüüs
Her Masters Voice
aka
Frank
***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
*********************************** |
|
BID = 144797
abracadabra Stammposter
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 361
|
ok. alles klar..
Und wie wärs damit?
loop
incf 0x4F,1
movf 0x4F,0
movwf PORTB
goto loop
Gruß
woow. das klappt ja!
hab das nur so dahin geschrieben ohne zu simulieren..
danke!
[ Diese Nachricht wurde geändert von: abracadabra am 2 Jan 2005 10:02 ]
|
BID = 144801
abracadabra Stammposter
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 361
|
hmm.
Schonwieder zu voreilig..
list p=16f84a
#include "P16F84A.INC"
bsf STATUS, RP0 ; switch to BANK 1
clrf TRISB
bcf STATUS, RP0
movlw D'00000000'
movwf 0x4F
movwf PORTB
loop
incf 0x4F,1
movf 0x4F,0
movwf PORTB
goto loop
end
Beim Simulieren klappt alles wunderbar, wenn ich jedoch das Programm in den PIC brenne, leuchten nur alle LEDs und sonst nichts.
Kann es sein, dass das ein wenig zu schnell vor sich geht?
eigentlich nicht oder? Ich müsste doch wenigstens was flackern sehen..
plz hep!
|
BID = 144806
Her Masters Voice Inventar
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 5308 Wohnort: irgendwo südlich von Berlin
|
du kannst fernsehen, weil das Auge ab einigen Hertz die Einzelbilder nicht mehr trennen kann aber erwartest bei LEDs die mit mehreren Kilo- bis Megahertz angesteuert werden noch ein flackern zu sehen. Denk mal drüber nach und programmier dir dann ne anständige Zeitschleife.
_________________
Tschüüüüüüüs
Her Masters Voice
aka
Frank
***********************************
Der optimale Arbeitspunkt stellt sich bei minimaler Rauchentwicklung ein...
***********************************
|
BID = 144809
abracadabra Stammposter
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 361
|
Ja da hast recht!
Dangä!
|