Reputation: 11
I am trying to write to use Modulo Adressing on my pic33ch512mp508 and write some random data in to the X and Y data memory. However, I can't get it to work for Y, it works perfectly fine for X.
Here are my code:
.global _modulo_adress_2
_modulo_adress_2:
MOV #0x01, w0
MOV w0, 0x2000
MOV w0, 0x7200
MOV #0x02, w0
MOV w0, 0x2002
MOV w0, 0x7202
MOV #0x03, w0
MOV w0, 0x2004
MOV w0, 0x7204
MOV #0x04, w0
MOV w0, 0x2006
MOV w0, 0x7206
MOV #0x7200,w0 //set modulo start address
MOV w0, YMODSRT
NOP
MOV #0x2000,w0 //set modulo start address
MOV w0, XMODSRT
NOP
MOV #0x7207,w0 //set modulo end address
MOV w0, YMODEND
NOP
MOV #0x2007,w0 //set modulo end address
MOV w0, XMODEND
NOP
MOV #0xCFD1,w0
MOV w0, MODCON
NOP
MOV #0x7200,w11
MOV #0x2000,w1
MOV #0x2014,w3
MOV #0x7214,w5
REPEAT #20
MOV [w11++],[w5++]
REPEAT #20
MOV [w1++],[w3++]
RETURN
the X outcome :
X Value at 0X2000 is: 0X1. Address 0
X Value at 0X2002 is: 0X2. Address 1
X Value at 0X2004 is: 0X3. Address 2
X Value at 0X2006 is: 0X4. Address 3
X Value at 0X2008 is: 00. Address 4
X Value at 0X200A is: 00. Address 5
X Value at 0X200C is: 00. Address 6
X Value at 0X200E is: 00. Address 7
X Value at 0X2010 is: 00. Address 8
X Value at 0X2012 is: 00. Address 9
X Value at 0X2014 is: 0X1. Address 10
X Value at 0X2016 is: 0X2. Address 11
X Value at 0X2018 is: 0X3. Address 12
X Value at 0X201A is: 0X4. Address 13
X Value at 0X201C is: 0X1. Address 14
X Value at 0X201E is: 0X2. Address 15
X Value at 0X2020 is: 0X3. Address 16
X Value at 0X2022 is: 0X4. Address 17
X Value at 0X2024 is: 0X1. Address 18
X Value at 0X2026 is: 0X2. Address 19
X Value at 0X2028 is: 0X3. Address 20
X Value at 0X202A is: 0X4. Address 21
X Value at 0X202C is: 0X1. Address 22
X Value at 0X202E is: 0X2. Address 23
X Value at 0X2030 is: 0X3. Address 24
X Value at 0X2032 is: 0X4. Address 25
X Value at 0X2034 is: 0X1. Address 26
X Value at 0X2036 is: 0X2. Address 27
X Value at 0X2038 is: 0X3. Address 28
X Value at 0X203A is: 0X4. Address 29
X Value at 0X203C is: 0X1. Address 30
the Y outcome:
Y Value at 0X7200 is: 0X1. Address 0
Y Value at 0X7202 is: 0X2. Address 1
Y Value at 0X7204 is: 0X3. Address 2
Y Value at 0X7206 is: 0X4. Address 3
Y Value at 0X7208 is: 00. Address 4
Y Value at 0X720A is: 00. Address 5
Y Value at 0X720C is: 00. Address 6
Y Value at 0X720E is: 00. Address 7
Y Value at 0X7210 is: 00. Address 8
Y Value at 0X7212 is: 00. Address 9
Y Value at 0X7214 is: 0X1. Address 10
Y Value at 0X7216 is: 0X2. Address 11
Y Value at 0X7218 is: 0X3. Address 12
Y Value at 0X721A is: 0X4. Address 13
Y Value at 0X721C is: 00. Address 14
Y Value at 0X721E is: 00. Address 15
Y Value at 0X7220 is: 00. Address 16
Y Value at 0X7222 is: 00. Address 17
Y Value at 0X7224 is: 00. Address 18
Y Value at 0X7226 is: 00. Address 19
Y Value at 0X7228 is: 0X1. Address 20
Y Value at 0X722A is: 0X2. Address 21
Y Value at 0X722C is: 0X3. Address 22
Y Value at 0X722E is: 0X4. Address 23
Y Value at 0X7230 is: 00. Address 24
Y Value at 0X7232 is: 00. Address 25
Y Value at 0X7234 is: 00. Address 26
I have tried all the different setups and changed spaces, but nothing seams to work.
Upvotes: 0
Views: 28