Jump to content

Dave

Administrators
  • Content Count

    2,046
  • Joined

  • Last visited

Everything posted by Dave

  1. This has now been added in SourceBoost V6.93 release. Regards Dave
  2. Soft2. Please try the search now.I hope it meets your needs. Regards Dave
  3. We would love to do this, the problem is our host don't allow it beacuse they don't want their servers overloaded as small searches result in lots more matches.There maybe a way round it. I'll see what I can do. Regards Dave
  4. TFcroft4, This sounds like one that we would need a complete project that demonstrates the issue in order to find it.If you can please send the complete project to support@sourceboost.com. Regards Dave
  5. carlosfandango, You need to add the EEPROM libray (eeprom.pic16.lib) to the project. Regards Dave
  6. link87, Not a bug. Keep an eye on th addresses, you will see then that the for loop generates asm either side of the code inside the loop. Regards Dave
  7. doozer, You have hit the limit of the hardware call stack that the processor has - 8 for PIC16s. It is only a warning as even though the total depth could spell danger, that might not actually be the case. For example you may have 8 deep calls while interrupts are disabled (or not yet enabled), and only 6 deep call when interrupts are enabled, and with your interrupt routine using a depth of 2 on the call stack your program would still function correctly. You can use the additional software call stack if you desired to increase the call depth, but there is some additional overhead in RAM and code. Regards Dave
  8. Quite correct. The time delay function will give you at least the time delay you request. The delays are generated by software loops executing NOP opcodes. Regards Dave
  9. If you don't reference the data in the code it gets optimised away, that will be your problem. ROM pointers aren't currently true pointers, they are actually rom data IDs so you won't know where the data is stored from them. You are probably better of using #pragma DATA to place the data into ROM at fixed locations When you buy the pro-license you need to get an activation key for Novo, if you haven't already got one, then use preg.exe to apply the activation key. Now goodies.exe can be run and the Novo source code and library projects will be installed. What exactly doesn't work? I hope the above helps. Regards Dave
  10. Semaphores signal events, the number of events is limited by how much memory used to store the scheduler data. The supplied binary libraries have been build with some different options eg: 3e5ts1 - 3 tasks, 5 events, 1 byte timers Regards Dave
  11. MikeK, That won't work as the devices will have different instruction opcodes, in simple terms "they speak slightly different languages". Regards Dave
  12. These targets normally have so little memory and stack that there is not so much demand for them. We may support them in future, but its not high on our priority list. Regards Dave
  13. Jokerman, You can find V6.87 here, there are no guarantees that it will be there forever though:http://www.sourceboost.com/CommonDownload/...ceboostv687.zip Regards Dave
  14. MikeK, Sadly the PIC16F54 is really a PIC12, ie it has a stack that is only 2 deep and 12bit instructions. This means it can't be readily supported by the BoostC compiler as it only supports PICs with 14bit (PIC16) and 16bit (PIC18) instructions. Regards Dave
  15. Dave

    Mplab Ide Error

    You have the projects, so you need to tell me The lib file is needed for library functions. Real simple code doesn't use any library functions and so does not need the .lib file. Regards Dave
  16. Dave

    Mplab Ide Error

    Steven, The problems you report don't see to make sense with what I am seeing. Here is a complete MPLABs project using your code that compiles. Regards Dave Mplabtest.zip
  17. Dave

    Mplab Ide Error

    Change where you are adding the icd2.h file - see below: #include <system.h> #include <icd2.h> void main(){ Regards Dave
  18. Dave

    Mplab Ide Error

    MPLAB V8.10 works fine for me.What other output do you get in the build window? Regards Dave
  19. Most tasks consist of an infinite loop, Sys_yield() is called at some point in the task to allow other tasks to get a chance to do some work. So no its not generall called at the end. Some task want to sleep for some time before waking up to do some checks before going back to sleep again. In this case the Sys_sleep() function is called. Sys_sleep() internally calls Sys_yield(). Please take a look at the supplied examples. Regards Dave
  20. Sys_yield() causes a task switch. The NOVO RTOS is co-operative, that is one task has to yield before another task gets the chance to do anything. Regards Dave
  21. Create a file called postbuild.bat to do this and it will be invoked automatically after a build (see IDE users manual). Regards Dave
  22. Carnage, I think this is a different issue. Hard to know whats going wrong here with only such a small snapshot of events. Looks like the code is entered with a bad pointer, where does that pointer value come from? Regards Dave
  23. This problem may well be a function of the Bootloader. Try tunning the code under the SourceBoost simulator. You will need to patch up the reset vector (as there will be no boot loader present) using #pragma DATA addr, opcode putting a goto 0x005 opcode at address 0. Regards Dave
  24. Some good ideas, certainly not ignored. Regards Dave
  25. It has been said that the static keyword is overused in C, not by the programmers but by those who defined the language.This leads to misunderstanding of what the static keyword does as it does different things in different places. When static is used as part of a global variable (out side a function) declaration it means that variable has static linkage. That means the variable is invisible to any .c source files other than the one in which it was declared. The way you are including the header file in multiple sources means each source file has its own unique and independant set of global variables. Recommendation: 1) Change "static" to "extern" in the header file (means external linkage, ie they can be accessed in this source code, but this source code isn't necessarily going to declare them). 2) Add the global variable declarations to just one .c file - don't put them in a header file/ I hope that all makes sense. Regards Dave
×
×
  • Create New...