From d3491be4f9bb4bd4201c032ac4277a2a3afc2c62 Mon Sep 17 00:00:00 2001 From: vrokas Date: Sun, 6 Jun 2004 08:58:21 +0000 Subject: [PATCH] * src/pic16/device.c (pic16_assignConfigWord): fixed bug that would only assign 0x300001 register. git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3349 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- ChangeLog | 5 +++++ src/pic16/device.c | 18 ++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 07a21e3d..a820ee78 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-06-06 Vangelis Rokas + + * src/pic16/device.c (pic16_assignConfigWord): fixed bug that + would only assign 0x300001 register. + 2004-06-05 Vangelis Rokas * device/lib/pic16/startup/Makefile: added $(MODELFLAGS) diff --git a/src/pic16/device.c b/src/pic16/device.c index 096af744..2364bd9e 100644 --- a/src/pic16/device.c +++ b/src/pic16/device.c @@ -1084,13 +1084,15 @@ void pic16_assignConfigWordValue(int address, int value) { int i; - for(i=0;icwInfo.confAddrEnd-pic16->cwInfo.confAddrStart+1;i++) { - if(pic16->cwInfo.crInfo[i].mask != -1) { -// fprintf(stderr, "setting location 0x%X\n", pic16->cwInfo.confAddrStart+i); - pic16->cwInfo.crInfo[i].value = value; - pic16->cwInfo.crInfo[i].emit = 1; - return; - } - } + + for(i=0;icwInfo.confAddrEnd-pic16->cwInfo.confAddrStart+1;i++) { + if((address == pic16->cwInfo.confAddrStart+i) + && (pic16->cwInfo.crInfo[i].mask != -1)) { +// fprintf(stderr, "setting location 0x%X to value 0x%x\n", /*address*/ pic16->cwInfo.confAddrStart+i, val + pic16->cwInfo.crInfo[i].value = value; + pic16->cwInfo.crInfo[i].emit = 1; + return; + } + } } -- 2.39.5