Jump to content

FredrikNyman

Members
  • Content Count

    16
  • Joined

  • Last visited

About FredrikNyman

  • Rank
    Member

Profile Information

  • Gender
    Male
  • Location
    Great Falls, VA, USA
  1. Way back when, TI effectively rebranded Stellaris as Tiva as part of the transition from Luminary Micro to TI and from Cortex-M3 to Cortex-M4. Now they seem to be abandoning Tiva as well; if you search for Tiva on ti.com, it takes you to "TivaWare for TM4C12x MCUs (Formerly Tiva MCUs)". Products->Microcontrollers no longer has a Tiva section either; instead, the Cortex-M4 are hidden under "Control + Automation" -> "TM4C12x". Any idea what's going on here?
  2. Digging through the Energia source code: (energia-0101E0012/hardware/tools/msp430/msp430/include/msp430fr5969.h) #define LPM4_bits (SCG1+SCG0+OSCOFF+CPUOFF) #define LPM4 _BIS_SR(LPM4_bits) /* Enter Low Power Mode 4 */ Is this what you want to happen, or do you also want interrupts? If you look at this thread from two years ago (or look at msp430fr59xx_p1_03.c in MSP430ware), it looks like you also want to enable interrupts: _BIS_SR(LPM4_bits + GIE); // Enter LPM4 w/interrupt
  3. You're right, this is looks like a documentation error. How much each pin can source/sink is device dependent. For the MSP430G2553, for example, under "Outputs, Ports Px" on page 24 in the datasheet, it specifies 6 mA per pin max (both for source and sink) and a maximum of 48 mA combined to hold the maximum voltage drop specified.
  4. You're using a pin that doesn't support analogWrite. Take a look at http://energia.nu/img/EK-TM4C1294XL.jpg -- only the pins marked in purple support analogWrite.
  5. Thanks again! I'm looking at the latest release of slas735, revision J. Can you confirm that page 16 in the PDF is the correct place to look, under "Timer_A3 (TA0, TA1)"? If I'm reading tables 12 and 13 right, the limitation that you can only use analogWrite on certain pins comes from how the CCR1 module block and TA1 output signal are connected. Would it also be correct to say that Energia could implement analogWrite on additional output pins by also using CCR0 and TA0, but even if they did, there still are some GPIO pins that won't allow analogWrite because they don't have any Timer_A3 signal connection.
  6. The code is at the bottom of the linked page. Other than #include "Energia.h" I used it as-is with a virgin exp-430g2.
  7. I'm working with the debounce example at http://energia.nu/Tutorial_Button.html According to the description, the program lets you blink a LED using a pushbutton. The way I read that (and the code!), the button is supposed to toggle the state of the LED: turn it on if it was off, and turn it off if it was on. However, that's not what happens when I run it on my Launchpad. What happens instead is that it starts out with the LED lit. The LED will stay on and will only be off while the pushbutton is held down. I'm using the internal LED and pushbutton. Did I misunderstand how the example is supposed to work? (Very possible, but that would make the debouncing completely pointless :-).
  8. Aha! Thank you so much! That turned out to be exactly right. I moved things around a bit, and using pins P2_1, P2_2, P2_4 and P2_6, everything works beautifully. Is the underlying issue -- that only some pins support analogWrite -- a limitation in the chip or is it an Energia thing?
  9. I for one would warmly welcome job posts, both for salaried work and for projects.
  10. I'm looking at the example at http://energia.nu/Tutorial_Button.html In the circuit, an external pull-up resistor is used. Then the code reads: // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT_PULLUP); The Energia reference page http://energia.nu/PinMode.html doesn't explain what INPUT_PULLUP does, but it seems reasonable to think it enables the processor's internal pull-up resistor. Are there any issues with enabling the processor's internal pull-up resistor and also use an external pull-up resistor, as is the case here?
  11. More fun with LEDs! I took the Energia LED fader example from energia.nu and modified it to output to P1.4, P1.5, P1.6 and P1.7 so that all four LEDs would fade in sync. #include "Energia.h" void setup(); void loop(); /* http://energia.nu/Tutorial_Fade.html Fade This example shows how to fade LEDs on pins (P1.4 thru P1.7) using the analogWrite() function. This example code is in the public domain. */ int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by void setup() { // declare pins P1_4 through P1_7 to be outputs: pinMode(P1_4, OUTPUT); pinMode(P1_5, OUTPUT); pinMode(P1_6, OUTPUT); pinMode(P1_7, OUTPUT); } void loop() { // set the brightness of the LEDs: analogWrite(P1_4, brightness); analogWrite(P1_5, brightness); analogWrite(P1_6, brightness); analogWrite(P1_7, brightness); // change the brightness for next time through the loop: brightness = brightness + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } // wait for 30 milliseconds to see the dimming effect delay(30); } Problem: it doesn't work. Or rather, P1.6 fades in and out as it should, but P1.4, P1.5 and P1.7 just turn on and off. If I change the original Energia code example to fade P1.5 instead of P1.6, the same thing happens: the LED just turns on and off. I've looked all over for a statement saying that Energia's AnalogWrite only works on P1.6, but have found nothing. What gives -- is my code broken? Thanks!
  12. I have an EXP-430G2 launchpad with a 'G2553. LEDs are connected (via transistors) to P1.4, P1.5, P1.6 and P1.7. When I ran the following code: #include <msp430.h> int main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P1DIR |= 0xF0; // Set P1.[4567] to output direction P1SEL = 0; // Set all P1's as GPIO for (; { volatile unsigned int i; P1OUT ^= 0xF0; // Toggle P1.[4567] using exclusive-OR i = 50000; // Delay do (i--); while (i != 0); } } I found a fun phenomenon: P1.4, P1.5 and P1.7 when light up, P1.6 goes dark and vice versa. Easy enough to fix: after the P1SEL line, add P1OUT = 0; to initialize the output pins. I noticed this while moving from a 'G2452 to the 'G2553, and thought it was a useful reminder to practice good coding hygiene and always explicitly initialize your outputs so they have a known state! :-)
  13. Does anyone happen to have some capacitive touch buttons library parts for Eagle to use with the MSP430G2? Thanks!
  14. I'm thinking about buying either a T962 reflow oven or a T862 rework station off eBay for my prototyping work. I'm making boards with 0603s and 0402s, so reflowing seems like a much better idea than hand-soldering. I see lots of T962s and T862s sold on eBay, but not a lot of reviews. Thoughts? Thanks! Fredrik T862: http://www.ebay.com/itm/190671941702 T962: http://www.ebay.com/itm/261327928362
  15. My project: a small low-cost, battery-powered wireless sensor board based on the MSP430G value series MCUs and the new CC1200 radios. The radio part is based on TI's CC1200 reference design, the MCU part is based on the launchpad: LED and button on the pins you expect; all MCU pins will be easily accessible via pin headers. Working on the schematics/PCB right now.
×
×
  • Create New...