Archiv verlassen und diese Seite im Standarddesign anzeigen : Daten in eine Adresse speichern
Hi ich hab mich gerade neu hier angemeldet da ich ein problem hab mit dem ich nicht weiter komme.
Ich hab keine Ahung ob des Thema schon einmal hier reingestellt hab aber ich freu mich auf eine Antwort.
Ich hab einen PIC 16F873
und ich weis nicht wie ich Daten, die der PIC errechnet hat. in Adressen speichern die der PIC vorgibt.
Es sind mehrere Adressen 0x21 .... 0x6F
und jeweils mehrere 1 Byte Informationen die in mehreren Files gespeichert sind.
Eigentlich ist es mehr eine Zuordnung von den Informationen zu den Adressen.
Am Anfang werden irgendwelche Daten vom PIC ermittelt und dann in Adresss 0x21 gespeichert, neue Daten werden ermittelt und in die naechst Adresse gespeichert 0x22 usw.
koennte mir jemand eine kurzen typ geben wie ich des am einfachsten loesen koennte?? Danke
Gruss
Schau dir die indirekte Addressierung des PICs an. Am Besten liest du dir das Datenblatt und sprut.de (http://sprut.de/electronic/pic/grund/adress.htm#indirekt) durch.
indirekt:
MOVLW 0x21
MOVWF FSR
; Daten sind in W bereitgestellt
MOVWF INDF ; schreibt W in den Register auf der Adresse 0x21
; Erhöhe die indirekte Adresse
INCF FSR ; INDF zeigt nun auf 0x22
lg
Mobius
Danke fuer die schnelle Antwort.
Hab mir des datenblatt schon oeffters durchgenommen hab aber nie die loesung drinn lesen koennen.
Nochmals Danke
Hallo!
@ Egg
Aus deiner chaotischer Beschreibung kann ich mir dein Problem nicht vorstellen und deswegen leider auch nicht helfen. Versuch es, bitte, genauer zu schildern, vor allem was du genau brauchst. O:)
MfG
Hallo
@ Mobius
Deine Routine funktioniert hab sie mal geschrieben um sie fuer meine Anwedung zu testen.
list p=16f873 ; list directive to define processor
#include <p16f873.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_ON & _BODEN_ON & _PWRTE_ON & _RC_OSC & _WRT_ENABLE_ON & _LVP_ON & _CPD_OFF
; '__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
w_temp EQU 0x20 ; variable used for context saving
status_temp EQU 0x21 ; variable used for context saving
AD1 EQU 0x22
AD2 EQU 0x23
DA10 EQU 0x26
DA11 EQU 0x27
PIX_COUNT EQU 0x2F
TEST_PORTA EQU 0x30
TEST_PORTB EQU 0x31
;************************************************* *********************
ORG 0x000 ; processor reset vector
clrf PCLATH ; ensure page bits are cleared
goto main ; go to beginning of program
;Initialisierung
ini
movlw 0x6F
movwf DA10
movlw 0x1C
movwf DA11
return
main
call ini
;Die Routine ist nur zum Test geschrieben ist nicht die eigenliche Routine
;ansonsten laesst sich sowas auch einfacher schreiben
start
incf PIX_COUNT
movf PIX_COUNT,w
addlw 0x21
movwf FSR
movlw 0x26
movwf INDF
movf PIX_COUNT,w
addlw 0x21
movwf FSR
movf INDF,w
movwf FSR
movf INDF,w
movwf TEST_PORTA
incf FSR
movf INDF,w
movwf TEST_PORTB
nop
nop
nop
END ; directive 'end of program'
Nochmal Danke
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.