In een stuk assembly code komt het onderstaande stukje voor (geschreven voor een pic microcontroller, de 16f876 om precies te zijn). Voor deze code bevat W (het w register) al een byte aan gegevens, en ik zou graag de rechter nibble legen (op nul instellen). Daarvoor heb ik de volgende code geschreven, maar het wil maar niet lukken, de ledjes op portb branden nog steeds allemaal. Klopt er dan toch iets niet aan deze code?
Het zijn allemaal gewoon digitale outputs. De leds die oplichten komen ook gewoon overeen met de hoge byte die in het w register zit, alleen zijn ook de leds die overeenkomen met de rechter nibble nog aan, die ik dus heb geprobeerd op nul in te stellen met bcf wat dus niet is gelukt.
(mischien is dit dan ook van belang: het komt uit een grotere code die een byte van een aangepaste linksys router ontvangt, deze byte wordt dat in het w register opgeslagen waarna de bovenstaande code wordt uitgevoerd en dan wil ik dus graag dat de rechter nibble leeg wordt gemaakt (ik moet ze namelijk appart hebben). Het leeg maken lukt dus alleen niet).
code:
1
2
3
4
5
6
7
8
9
| movwf leftm bcf leftm,0h bcf leftm,1h bcf leftm,2h bcf leftm,3h MOVF leftm movwf PORTB |
Het zijn allemaal gewoon digitale outputs. De leds die oplichten komen ook gewoon overeen met de hoge byte die in het w register zit, alleen zijn ook de leds die overeenkomen met de rechter nibble nog aan, die ik dus heb geprobeerd op nul in te stellen met bcf wat dus niet is gelukt.
(mischien is dit dan ook van belang: het komt uit een grotere code die een byte van een aangepaste linksys router ontvangt, deze byte wordt dat in het w register opgeslagen waarna de bovenstaande code wordt uitgevoerd en dan wil ik dus graag dat de rechter nibble leeg wordt gemaakt (ik moet ze namelijk appart hebben). Het leeg maken lukt dus alleen niet).
[ Voor 46% gewijzigd door huub8 op 04-02-2011 21:19 ]