Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About dave_coneng

  • Rank

Profile Information

  • Gender
    Not Telling
  1. Nope. Now it is freezing up again. After I made some changes to my code and tried to recompile it, it got to the same point and hung up. It just sits at this point: Executing: "C:\Program Files\SourceBoost\boostlink.pic.exe" "X:\SVN\DM\S70\Unstable\Software\Code\commControl.obj" "X:\SVN\DM\S70\Unstable\Software\Code\displayControl.obj" "X:\SVN\DM\S70\Unstable\Software\Code\main.obj" "X:\SVN\DM\S70\Unstable\Software\Code\specialVariables.obj" "X:\SVN\DM\S70\Unstable\Software\Code\switchControl.obj" "X:\SVN\DM\S70\Unstable\Software\Code\timerTest.obj" "X:\SVN\DM\S70\Unstable\Software\Code\libc.pic16.lib" -O1 -p "S70" -t 16F917 BoostLink Optimizing Linker Version 6.91 http://www.sourceboost.com Copyright© 2004-2008 Pavel Baranov Copyright© 2004-2008 David Hobday Now, it might work if I wait long enough. But I am almost at 10 minutes already and am sure it will go longer.
  2. Alright, I finally had to check if it worked with my PIC18 projects and it did. Then I tried another PIC16 project and it worked. So, finally I deleted everything in the directory and created a new project in the empty directory and it finally finishes. BUT, it still takes longer than I normally expect. Oh well.
  3. So now I reinstalled MPLAB with the latest version 8.2 and also reinstalled boostc 9.61 and it still takes forever. There are two boostlink.pic.exe process running in the Task Manager. If I end one of them, it will give me an error where it can't load the .COF file and it will give me a BUILD SUCCEEDED.
  4. I left work for about an hour or so. I left it alone after it came up with the previous error. I just got back and it is at the BUILD SUCCEEDED part. But that is way too long to wait. Any ideas?
  5. I am using the Pro version of Boost C and have been for the last few years. Today I had to update to Version 6.91 because I was using an older lib file in some code that I hadn't touched in about a year. I must have updated the compiler since then. This process never usually causes a problem. Now when I try to build my program while integrated with MPLAB(as always), it gets down to the linker step and seems to hang up and not move on. If i press the build button again I get this: Clean: Deleting intermediary and output files. Clean: Deleted file "commControl.OBJ". Clean: Deleted file "displayControl.OBJ". Clean: Deleted file "main.OBJ". Clean: Deleted file "specialVariables.OBJ". Clean: Deleted file "switchControl.OBJ". Clean: Deleted file "timerTest.OBJ". Clean: Done. Can't delete target file "X". (0) BUILD FAILED: Tue Jan 27 08:52:06 2009 It actually has worked a couple times but usually ends up hanging up. I've tried holding the CTRL key when pressing the build button. I've tried uninstalling and reinstalling BoostC. I've tried deleting all the temporary files in my source directory and am at my wit's end. Sometimes I have to end it's process in Task manager and there are two boostlink.pic.exe entries in there. Can someone please help me figure this out. I need to move on. Thanks, Dave
  6. I think there is a similar problem in the 16F914 TDF file. I had to add this: RegisterGP[ 60h ] { // block of general purpose memory Description = "General Purpose Register",""; Address = 190h; } That got the same error to go away. Just in case anyone runs into the same problem. Thanks, Dave
  7. OK, we decided to try something here. We added an extra instruction before the required sequence. We added a movwf _eecon2 right before the movlw 0x55, and that made the bsf move out of right in the middle of the required sequence to right before. I hope this helps anyone else that has a similar issue. Thanks, Dave
  8. In case my last post was hard to understand, which it kind of is when I go back and read it myself. I put in the required sequence to write to EEPROM in the 16F676. eecon2 = 0x55 ; eecon2 = 0xAA ; or _asm { movlw 0x55 movwf _eecon2 movlw 0xAA movwf _eecon2 } this is what I get in the disassembly: 693: movlw 55h ;Unlock write 050 3055 MOVLW 0x55 694: movwf _eecon2 ; 051 1683 BSF 0x3, 0x5 052 009D MOVWF 0x1d 695: movlw AAh ; 053 30AA MOVLW 0xaa 696: movwf _eecon2 ; 054 009D MOVWF 0x1d I did not write that BSF instruction. First I tried using C, but when I looked at the disassembly I noticed the extra bank switching instruction bsf 0x3, 0x5. So, I used inline assembly with the two movlw's and two movfw's, and it still added the same bsf instruction right in the middle. Like I said, I turned off the optimization on both the linker(I had read in another post that was the source of automatic bank switching) and the compiler and neither of them caused that instruction to go away. We really need to write to the EEPROM for this project, help would be greatly appreciated. Thanks again, Dave
  9. I am working on a similar problem...I need to write to the EEPROM in a 16F676. I leave the bank switch to the linker, and it adds and extra bsf instruction in the middle of the required sequence for writing to the EEPROM as defined by Microchip. I have included the disassembly for the code, it's just inline assembly: asm 689: { 690: bsf _status,RP0 ;Bank 1 04A 1283 BCF 0x3, 0x5 04B 1683 BSF 0x3, 0x5 691: bsf _eecon1,WREN ;Enable write 04C 1683 BSF 0x3, 0x5 04D 151C BSF 0x1c, 0x2 692: bcf _intcon,GIE ;Disable INTs 04E 1283 BCF 0x3, 0x5 04F 138B BCF 0xb, 0x7 693: movlw 55h ;Unlock write 050 3055 MOVLW 0x55 694: movwf _eecon2 ; 051 1683 BSF 0x3, 0x5 052 009D MOVWF 0x1d 695: movlw AAh ; 053 30AA MOVLW 0xaa 696: movwf _eecon2 ; 054 009D MOVWF 0x1d 697: bsf _eecon1,WR ;Start the write 055 149C BSF 0x1c, 0x1 698: bsf _intcon,GIE ;Enable INTS 056 1283 BCF 0x3, 0x5 057 178B BSF 0xb, 0x7 699: } I tried turning off optimization for both the linker and the compiler but neither worked in getting rid of this instruction. Also, when I turn off optimization for the linker it makes my code very close to overflowing the ROM. Is there any way to get this to go away, and if so can you let me know about it. Thanks, Dave
  10. Thank you, As soon as I get this project done, I will try it and report back if anything is screwy. Dave
  11. i thought i knew how to program in c, but after this past week, i almost lost my mind trying to figure out this problem. i have a timer and it depends on the a/d reading of a potentiometer. the timer keeps time by the AC zero cross. so, i wanted a timer value for 20 sec, and my algorithm called for a number greater than 255. so i declared my timer variable as an unsigned int, and it didn't work. the time was way off. so i decided to try an unsigned short after looking at the boostc help file, and now it works. i thought they were the same thing. can anyone explain this to me? thanks, dave
  12. OK Dave I am so sorry...I'm a big dummy. I looked at the .lst file and see that it is creating the retlw's. It just so happened that when I was testing with an 8, it was putting zero's into digitBuffer and that is why I was getting a blank screen. Sorry for wasting your time. Dave
  13. What are you trying to acheive ?Maybe you can provide a simple example that doesn't do what you want and we can help. Regards Dave <{POST_SNAPBACK}>
  14. I started working on this project in the Sourceboost IDE because I need to make some progress and now I realize that even though it's creating a table, it's not putting the right values in the table. I'm stumped, I'd really like to know what I'm doing wrong.
  15. Oh, I'm sorry I made the example code a little too simplified. Here is something more representative of my code. I also have some I2C routines, but didn't list them here. It creates the table in the Sourceboost IDE, but when I use MPLAB, it doesn't appear to work. I see some MOVLW and MOVWF instructions when look at the disassembly listing. Plus, when I hard code values in, the correct display shows up. Is there something I'm doing wrong, or do I just have to switch to the sourceboost IDE? #include <system.h> rom char *displayTable = "\0x3F\0x06\0x5B\0x4F\0x66\0x6D\0x7D\0x07\0x7F\0x67\0x79\0x76\0x6D\0x7C\0x38\0x71\0x39\0x5E\0x48\0x06\0x1E\0x73\0x40\0x74\0x00\0x77\0x3E" ; rom char *flipDisplayTable = "\0x3F\0x30\0x5B\0x79\0x74\0x6D\0x6F\0x38\0x7F\0x7C\0x4F\0x76\0x6D\0x67\0x07\0x4E\0x0F\0x73\0x41\0x30\0x33\0x5E\0x40\0x66\0x00\0x7E\0x37" ; char digitBuffer1 ; char digitBuffer2 ; char digitBuffer3 ; char digitBuffer4 ; void displayStateMachine( void ) ; void main( void ) { option_reg = 0xDE ; // Pull-ups disabled and prescaler @ 1:64 for WDT while(1) { displayStateMachine() ; } } void displayStateMachine( void ) { digitBuffer1 = (char)displayTable[8] ; digitBuffer2 = (char)displayTable[8] ; digitBuffer3 = (char)displayTable[8] ; digitBuffer4 = (char)displayTable[8] ; }
  • Create New...