Jump to content

drumanart

EstablishedMember
  • Content Count

    48
  • Joined

  • Last visited

Community Reputation

0 Neutral

About drumanart

  • Rank
    Regular
  1. Hello I use since ages Sourceboost with Linux and MPLAB IDE 8,90 under wine (OS UBUNTU). Recently I migrated to MPLABX (Linux version) using the free version of MPLABXC8 compiler. As I have good experiences with SourceBoost I'd would like to go ahead with this complier and purchase the newest version 7.43 and use it with MPLABX IDE under Linux. Did any body make it work? Kind regards Martin
  2. Hello. I use since a couple of years a licensed version of BoostC C Compiler (Version 6.95). Now, as a plan to upgrade to a newer, actual, version and also to migrate to MPLAB-X (I use still MAPLAB 8.5 with LINUX and wine what works like a charm) I have a doubt: If I buy the C++ Compiler can I compile (re-use) code written for the BoostC C compiler version? In any case as I plan to go on with LINUX I suppose that I will have some issues to make SourceBoost work. Thanks Martin
  3. Hello. Code for 18F4420 At the beginning of my code I tell the preprocessor to activate the watch dog. #pragma DATA _CONFIG2H, _WDT_ON_2H & _WDTPS_2048_2H // WDTON, prescaler 1/2024. Is there a possibility to deactivate the watchdog while the code is running but not with _asm clrwdt? Thanks Martin
  4. Thanks for the LUT solution. As the compass works with 16bit resolution and I have to calculate, beside the heading, also pitch and roll (with an incorporated accelerometer) I thinks the easiest way is to send all raw data (6 bytes for the magnetometer and 6 bytes for the accelerometer) to the computer and solve the "big" calculation with the PC. I can do this quite straight forward with SuperCollider. The other thing is, as I mentioned above, that my browser shows rare signs if I lock at other threads: so, for example: ( for ( // ( for ) // &#41 for "; Any succestio
  5. Hello, I made a small PCB for the LSM303 electronic compass. The unit communicates with a I2C protocol and I made my one software functions to communicate with the unit what works great. Now, to get something useful out of the row data I have to use some math. Following the app notes of the LSM303 I have to calculate: Heading = arctan (Yh/Xh) Is there a mathematic library in SourceBoost. I work with a licend 6,95 Version. The other thing is that my browser (Chromium with Linux) want show the special signes from other threads correctly. My browser shows: ( for ( // &
  6. Ok, I respond to myself: As nobody in the forum seems to run MPLABX IDE under Linux (UBUNTU) and before inverting for a new programmer ICD3 (ICD2 want work with MPLABX IDE ) and before purchasing a new version of SourceBoost (with drivers for MPLABX IDE) I installed PIKLAB IDE. IT WORKS GREAT and my ICD2 clone runs even faster then ever in MPLAB IDE under WIndows. Martin
  7. Hello. I use UBUNTU (LINUX) as an OS and run, using wine, MPLAB IDE 8.5 with a licensed SourceBoost v.6.95 This works fine but is a little slow. No, since Microchip lanced the MPLAB X IDE there is also a version for LINUX and I red that SourceBoost v.7.05 has the drivers to run the program with the new environment. Does this works also on a LINUX (UBUNTU) without fiddling with wine, and did someone install it successfully? ( I can't find any topics). Thanks Martin
  8. Jorge, I found the bug, I had the T1CON, 3 (T1OSCEN) flag enabled. This is why the program always jumped to the void interrupt(void ) function. Both, the TMR0 and TMR1 timers, as well as the SSPIF flag are set as high priority and I handle them using the void interrupt(void ) function and the program works great. If I put an oscilloscope at the PW output, even in receiving continuous data stream from the wireless SPI unit (nRF24L01 is great), the puls-with is not affected at all. I did a little trial to manage the SPI in pooling the BF flag and also this works. As I have now the abiliti
  9. Oh yes, the SSPIP is flag is the PIR1,3 and the TMR1F the PIR1,0. Yesterday I tried to find the failure of my interrupt mess without having success. Still, as soon as I start the timers (TMR0, TMR1) fto run the PW the communication with the SPI unit fails. Today I will handle the SPI pooling the SSPIF in the main function. Would it be also possible to use the SSPSTAT, BF (buffer full) flag to handle the SPI module? Thanks for your passion. Martin
  10. Yeep Jorge. Thanks for the advise of the AND and OR gates graphics at page 92 of the 18Fxx data-sheet this is helpful for understanding of interrupts. As I had the PW for two servos with TMR0, TMR1 working really nicely and on the other hand the SPI unit (the Nordic 24L01 wireless radio) ) using another program was working fantastic (in my opinion) I didn't expect to have this troubles. I'm sure the mess is already at the SPI interrupt PIR1,SSPIF. Probably I forgot to clear somewhere the SSPIF as I did with the TMR1IF flag (this is why I forced the GIE flag to 1) . I suppose this messes
  11. Hi Jorge. So, I assume only if the IPEN of the RCON register is set the High/Low priority bits are valid and an interrupt_low function is activated. Now, could I handle the PW routine with the TMR0 and TMR1 flags as low priority interrupts in the interrupt_low function and handle the INT2IF and the SSPIF for the ISP unit as high priority interrupts? ( I don't find a way to set TMR1 as low priority, nor the SSPIF) Or is it easier to set the RCON bit as 0 and work in PIC16CXXX Compatibility mode. What is the standard way if one creates PW with timers and have a ISP unit connected.
  12. The thing is slightly more complex, as the program creates two PW, with timer0 and timer1. At start up I have to set the GIE & PEIE to configure the ISP module (wirless radio nRF24L01). I changed the messy code following your advice and I can receive wireless data from the nRF24L01, but as soon as I start the timers (the disabled code underneath) the INT2IF want get high anymore and I can't receive wireless data any more. So, either the PW works or the nRF24L01 works. Still there is a missmatch. Thanks Martin void interrupt(void){ if (spi_interrupt){ spi_handle_interrup
  13. Hello. I spent a entire afternoon in trying to get en interrupt on a PIC18F4420 on portb,2 working. At portb,2 I have the IRQ pin of an nRF24L01 attached. So, this pin drives low when data is received and I would like that the program jumps to the void interrupt(void) routine. For test purpose the program stays for ever in the interrupt function. With my code the int2if flag gets high before a change of portb,2 occurs, but the idea is that the interrupt happens if the pin is pulled down. To configure the PIC I made an init function: . void init(){ osccon = 01110000b; // interna
  14. Hi Jorge. I have seen that you handle the RX data also in the ISR. Unfortunately your code want run in Sourceboost neither in MPLAB so (for me) it is not so easy to follow entirely your ideas. Somehow I understand that you resend data to the servos every 20ms, but I can't find where you handle the "Elapsed20ms" variable. Thanks Martin
×
×
  • Create New...