Ich muss nochmal nevern :)
Und zwar geht es um den RAM des PIC's. Ich möchte sogesehen einen
dynamischen Speicher erstellen, der 256 Byte groß werden kann(1 Bank).
Dies ist notwendig, da ich nicht weiß, was der Benutzer nacher für
eingaben macht. Mein QT sieht bis jetzt so aus:
1 | CALL res_memory
|
2 |
|
3 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
4 | ;; Init values in ram ;;
|
5 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
6 |
|
7 | loop1
|
8 | MOVFF WREG, POSTINC0
|
9 | INCF WREG, f
|
10 | DECFSZ TEMP, f
|
11 | BRA loop1
|
12 |
|
13 | MOVLB 0x01 ; Hier wird ausgelesen
|
14 | MOVF 0x07, 0
|
15 | MOVWF TEMP
|
16 | MOVLB 0x00 ; Auslesen Ende
|
17 |
|
18 | loop ; endeless loop
|
19 | GOTO get_usart ; read from eusart
|
20 | get_eusart_end
|
21 | CALL set_eusart ; set to eusart
|
22 | GOTO loop
|
23 |
|
24 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
25 | ;; Reserve dynamic memory ;;
|
26 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
27 |
|
28 | res_memory
|
29 | LFSR FSR0, 0x500 ; chose bank 1
|
30 | MOVLW 0x00
|
31 | MOVFF WREG, TEMP
|
32 | MOVLW 0x00
|
33 | RETURN
|
Zu Testzwecken lasse ich die 256 Byte des RAM's mit Inkrementierten
Werten volllaufen. Aber irgendwie will das auslesen nicht gelingen. Habe
ich da irgendwas vergessen? Ich benutze das Experentierboard von
Franzis(der Bootloader nimmer die Adressen von 0x000 bis 0x400 für sich
in Anspruch).
Und noch ein Frage. Gibt es eine möglichkeit, den Ram zu erweitern? Mit
Bausteinen per I2C? Wie sieht es dann mit den lese und
schreibgeschwindigkeiten aus?
Danke schonmal im vorraus.
David