Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


jkabat last won the day on September 9 2013

jkabat had the most liked content!

About jkabat

  • Rank
    Level 1

Profile Information

  • Location
    Hillsboro, OR
  1. @@sumotoy, I ran across this a while ago. Energia does not change the Stellaris/TivaC clock based on F_FPU. It is always 80Mhz! I modified Wiring.c timerInit() at one time to use F_CPU. However I also hadto modify timer5, and systick as well as the timer routines. I did this due to the fact that an application I had needed 50mhz for hardware interfaces. I later found out a way to get the H/W interface to run faster and abandoned this. I also changed timer5 to one of the wtimers in order to get 64 bits on millis() for loong running applications. I also found out later how to use the 32-bit
  2. @@CorB That actually should be OK. You might want to try: #pragma pack(1) ... define your structure here #pragma pack() You might be having problems with word alignment. The compiler may force uint16_t to be aligned on a word boundry. The pack(1) forces aligment to 1 byte. the pack() restores it to whatever the compiler is using. I have to do this all the time on my x86 stuff. regards John
  3. @@CorB, Here is a useful function; uint16_t swap16(uint16_t val) { return ((val & 0xFF) << 8) | ((val >> 8) & 0xFF); } data2=swap(data1); I make my own include files that conditionally compile based on the endian type of the host. All external items should be little endian. #ifdef WE_ARE_BIGENDIAN #define swap16_external(val) (((val & 0xFF) << 8) | ((val >> 8) & 0xFF))) #else #define swap16_external(val) (val) #endif
  4. @@CorB The enums may be generating 16-bit variables. I believe there is a gcc option to limit to 8 bits. Alternatively define them as uint8_t. Of course I may be totally wrong! Regards JohnK
  5. My order shipped last night and is on it's way from Dallas via FedEx! I guess Tivas are in stock and available. Thanks @@BravoV for letting us know about this.
  6. @@grahamf72, If was @@dellwoodbu who provided this information. Thanks to @@dellwoodbu again. JohnK
  7. grahamf72See this thread: http://forum.stellarisiti.com/topic/495-programming-lm4f-when-idc-usb-connector-destroyed/ This is from when I 1st had problems.
  8. I believe he has a direct drive LCD it takes raw24-bit RGB data, DotClock, HSYNC, VSYNC and some other lines. No controller as we know it. I have a 5" one and I hooked/am hooking it it to a SSD1963 development board from Tech Toys.
  9. @@PTB, in fast digital read: Move GPIODirModeSet(ulPort, ucPins, GPIO_DIR_MODE_IN); to ant init routine. Ony dnnest to be done before the read. use constants if possble in fast digial read: For port a pin 2 PA2 #define PORT_A GPIOA_BASE #define PIN2 ( (1<<2)<<2) value = (HWREG( PORT_A + (GPIO_O_DATA +PIN2)); The you can build somthing like the following: #define PORT_A GPIOA_BASE #define PIN2 ((1<<2) #define NUMBER_VALUES 4096 uint32_t pa2 _values[NUMBER_VALUES+1]; void fast_read_PA2(void) { int i; uint32_t *pValues=&VALUES[0
  10. My Project, A replacement for the Stereo on my 1994 Chrsyler New Yorker. With added features: 1. Blutooth using Sparkfun BT-52 BT audio Board. (hadles i2S form radio bards - a plus) 2. AM/FM/SW tuner using Silcon Labs Si???? 3. Weather Radio using Si4707. 4. USB MP3 Played 5. 7" touch Display using Android tabled via ADK 6. GPS & Navigation 7. Monitor automobile funtions via the old Chrysler CCD bus. 8. CAN Bus interface to future use in another Car. 9. Rear view camera to display. 10. Possible CD player. 11. Interface to Tapster and/or speedwiki to provide real-time spee
  11. @@PTB Almost one microsecond per read is really gootd. Consider that 1usec is the limit of the hardware! The 3usec may be do to the overhead of the call to micros! Energia has a bain-damaged micros/and millis method anyhow. Try sample1=micros(); sampe2=micros(); Serail.prntln(sample2-sample1; This will give you an idea of the overhead. I am sorry I will not be able to help as I am leaving on a business trip tomorrow morning. I will be back thursday. If anyone is inerested here is my replacement for wiring.c to make timing more accurate. The old version had warp problems that l
  12. @@reaper7, That is what I was going to suggest. Just overloaded here a work today. @@PTB one thing you may want to do after applying @@reaper7s fix is to place the code for fastAnalogRead in place of the call. Anlternativly you should move the read and init routines up befor loop and place the __inline__ attribute on them. Sorry I am at work preparing for a trip and am not sure of the exact format. If you copy the code in place of fast... assign the result to sample[i++]= HWREG(ulBase + ADC_SSFIFO); in place of value[ulcount]. If you switch to another sequencer (o has an 8 deep f
  13. Looks got for a project i have in mind. I'll take one if there are any left.
  14. @@PTB, I begin to see where I erred! I forgot to include the sequencer in the read of the fifo. The clue to this was the ucount was 8 not 1. this indicates the we were reading an 8 deep FIFO not a single one. (Sequencer 0) Also since value is only one entry were were overwriting something following it. That is why it never returned! So one more fix: change value to: uint16_t value[8]; just to be safe. change the end as follows: // // Get the offset of the sequence to be read. // ulBase = ADC0_BASE + (ADC_SEQ + (ADC_SEQ_STEP * SEQUENCER)); // // Read samp
  • Create New...