Git Product home page Git Product logo

energia's Introduction

The Energia project is no longer maintained.

Energia, the fork of the Arduino IDE and SDK for the LaunchPad boards, is no longer maintained. The last release 1.8.10E23 was published in December 2019.

The official tools from Texas Instruments are Code Composer Studio, based on Eclipse with an online variant, and the SimpleLink SDK for the ARM Cortex-M MCUs.

What Is Energia?

Energia is a fork/port of Arduino for the Launchpads, or boards with MCUs from Texas Instruments.

What Are the LaunchPads Supported?

Energia provides native support for the following LaunchPads:

  • LaunchPad with MSP430G2231, MSP430G2452 or MSP430G2553 or LaunchPad
  • Experimeter Board with MSP430FR5739 or FraunchPad
  • LaunchPad with MSP430F5529 or FattyPad
  • LaunchPad with MSP430FR5969
  • LaunchPad with Stellaris LM4F120 or Tiva C Series TM4C123 or StellarPad
  • Connected LaunchPad with Tiva C Series TM4C129

What Are the BoosterPacks Supported?

Energia includes ready-to-use libraries for the following BoosterPacks:

  • Anaren Air CC110L BoosterPack
  • Educational BoosterPack MKII
  • LCD Sharp BoosterPack
  • CC3000 SimpleLink WiFi BoosterPack

Looking for Help?

No problem! There are a variety of resources available to get you up and running, and sprinting once you're up and running.

  • GitHub repository - This very page!
  • Download - Download a compiled application for Linux, Mac OS X, or Windows.
  • Website - Full documentation including tutorials, reference, pins maps, FAQ and much more!
  • Wiki - Find basic information and tutorials here.
  • LaunchPad forum at 43oh - A community around the original LaunchPad but also the newer ones.
  • StellarPad forum at Stellaristi - A community more focused on the newer Stellaris LaunchPad.
  • Bug report - Is something not working as it ought to? Or better yet, is there something we could make better?

Clone instructions:

Energia consists of the main repository and a submodule called emt. The emt tree contains the sources for the Energia MT (Multi Tasking) feature that is based on TI-RTOS/SYSBIOS. To clone Energia and the emt submodule:

git clone --recursive https://github.com/energia/Energia.git

If you already have a clone of Energia then:

git submodule update --init --recursive
git submodule sync
cd emt
git pull
cd ..

energia's People

Contributors

alfh avatar amcewen avatar astuder avatar cmaglie avatar damellis avatar daverusso avatar dcuartielles avatar dd430 avatar eighthave avatar eried avatar haneefmubarak avatar holla2040 avatar m000z0rz avatar measley avatar pbrier avatar rei-vilo avatar revisore avatar rickkimball avatar ricklon avatar robertinant avatar shengzhao91 avatar solexious avatar soojinhan avatar spirilis avatar stefansch avatar szajakubiak avatar tigoe avatar westfw avatar zeveland avatar zlalanne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

energia's Issues

How to Name the Pins?

How to name the pins?

Today, the pins are named by their number: 1 for VCC, 2 for P1.0, 7 for P1.5, 8 for P2.0, ...

Wouldn't be better to use the names from the silkscreen: P10 for P1.0, P15 for P15, P20 for P2.0, ...?

Missing wiring_pulse.c for MSP430 Platform

wiring_pulse.c is available only for Arduino platform at the Energia / hardware / arduino / cores / arduino folder.

pulseIn() is mentioned at line 151 of Energia / hardware / msp430 / cores / msp430 / Energia.h

unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);

but isn't defined elsewhere.

There's no wiring_pulse.c file or equivalent in the Energia / hardware / msp430 / cores / msp430 folder.

I tried and copied-pasted Arduino wiring_pulse.c into the msp430 folder, changed #include "pins_arduino.h" for `

include "pins_energia.h"`, but compilation raised errors, as micro-controllers are different.

Define Energia $(version)

$(version) should be stated somewhere to avoid Energia $(version) from being displayed as the title of the Energia window.

On the compiled Energia.app, $(version) is on file /Applications/Energia.app/Contents/Resources/Java/lib/version.txt

Generated code does not run 2nd time

When I make a program (simple led blink and download it, it will not run. (MSP430G2553 device, 1 or 16Mhz clock tested).
Oddly, it will run when I first download a program I made with the stand-alone msp430-gcc compiler
(ubuntu linux package) using mspdebug and THEN use the energia IDE. When I download the same
program again, it will NOT run.

To recap:

  1. download externally compiled program (LED bliker) with MSPdebug: OK
  2. Compile and Download program with Energia: OK (runs)
  3. Compile and Download same program with Energia: NOK (halts)
  4. Downloading hex file same program with mspdebug, or resetting board: NOK

It seems there may be something wrong with the initialization code / clock selection (WDT timeout?)
Any ideas?

How to Name Pins?

How to name the pins?

Present names give 2 for P1.0 LED1... 5 for P1.3 S2 ... 10 for P2.2

Wouldn't be better to replicate the numbers on the silkscreen? P10 P11 ... P17 and P20 ... P25

Core folder name

Rename /Energia/hardware/msp430/cores/arduinoto /Energia/hardware/msp430/cores/msp430 for better consistency

set analog frequency and resolution and Servo output

I would propose two new functions in the wiring_analog.c to make optimal use of the 16bit PWM, and be able
to drive RC servos off the PWM

analogFrequency(long frequency); // Set the PWM frequency. (Note: Minimal freq. is F_CPU/8*65536), default is 490
analogResolution(short resolution); // Set the resolution in counts (0..x), default is 255.

I have modified the source to do just this, but would like some response to see if this is a appreciated feature.
It is provides additional functionality that is not available in the original arduino.

I can also wrap this in a Servo() class. But this would almost duplicate the analog output functionality.

Feedback is appreciated.

Direct port manipulation errors

Perhaps already known, it looks like direct port manipulation is not working
in Energia 1.0

DDRD = B11111110;
give me an error sketch_apr26e.cpp:2:1: error: 'DDRD' does not name a type

const int portBit = 4;
PORTD |= (1 << portBit);

gives me an error

sketch_apr26e.cpp:4:1: error: 'PORTD' does not name a type

void loop() {
while(1) {
PORTD |= _BV(2);
PORTD &= ~_BV(2);
}
}

gives me an error

sketch_apr26e.cpp: In function 'void loop()':
sketch_apr26e.cpp:5:5: error: 'PORTD' was not declared in this scope
sketch_apr26e.cpp:5:19: error: '_BV' was not declared in this scope

Analog/timer pin definiton incorrect, only one analog output available

The analog pin/timer definition is incorrect in pins_energia.h. Timer1 outputs are not available.

Note: due to the fact that compare register 0 is used as the PWM period, only two analog outputs are available per timer.
And OUT0.2 is not available as a pin, a maximum of 3 independent outputs are available on the 20PIN devices.

Proposed definition:

// Defines for devices with 2x TA3 timers (e.g. MSP430g2553). On the 20pin devices, upto 3 analog outputs are available
// T0A1, T1A1 and T1A2
const uint8_t digital_pin_to_timer[] = {
    NOT_ON_TIMER, /*  dummy */
    NOT_ON_TIMER, /*  1 - VCC */
    NOT_ON_TIMER, /*  2 - P1.0 */
    T0A0,         /*  3 - P1.1, note: A0 output cannot be used with analogWrite */
    T0A1,         /*  4 - P1.2 */
    NOT_ON_TIMER, /*  5 - P1.3 */
    NOT_ON_TIMER, /*  6 - P1.4, TODO: T0A2??, not on DIP20 devices according tot datasheet  */
    T0A0,         /*  7 - P1.5, note: A0 output cannot be used with analogWrite  */
    T1A0,         /*  8 - P2.0, note: A0 output cannot be used with analogWrite */
    T1A1,         /*  9 - P2.1 */
    T1A1,         /* 10 - P2.3 */
    T1A0,         /* 11 - P2.4 note: A0 output cannot be used with analogWrite  */
    T1A2,         /* 12 - P2.5 */
    T1A2,         /* 13 - P2.6 */
    T0A1,         /* 14 - P1.6 */
    NOT_ON_TIMER /* 15 - P1.7 */
//  NOT_ON_TIMER,       /* 16 - /RESET */  
// NOT_ON_TIMER,        /* 17 - TEST */  
// T1A2,                /* 18 - XOUT - P2.7 */
// NOT_ON_TIMER,        /* 18 - XIN - P2.6 */
// NOT_ON_TIMER,        /* 20 - GND */
};

Pull-up resistor not activated, digital input examples not working on Launchpad

The internal pull-up resistor is not activated for inputs, in a similar fashion as with the Arduino.

In the arduino, to enable the pull UP, you can write a 1 to a digital input:

pinMode(pin, INPUT); // set pin to input
digitalWrite(pin, HIGH); // turn on pullup resistors

Alternatively you can use pinMode(pin, INPUT_PULLUP);
Both methods are not implemented on energia

In the MSP430, you need to enable the resistor AND write a 1 to the input:
for SW2 on the launchpad board (P1.3):
P1REN |= 1<<3;
P1OUT |= 1<<3;

you may want to include the enabling of the corresponding P1RENbit in the pinMode() core function

The standard digital input examples are not working, because they expect an external pull-up. May want to include some launchpad specific examples (with the right switch and LED pin numbers)

Forum Thread?

bluehash, 43oh.com forum administrator, sent a kind invitation to post about the Energia project on the forum.

If possible you are free to use the Forum as support for your Energia project(in the community project section). Let me know.

Meanwhile, Rickta59 has started the thread Energia (Arduino for msp430) on 43oh.com.

Having an official thread to promote Energia could be nice.

What do you think?

Error compiling assembler libraries ".S"

Hi,

I am new to MSP430 and Energia and trying to learn.
I am using Energia build 005a right now.

I am trying to use the RTC library from TI but it is in assembler.
I have setup the files in my Sketchbook directories.
I renamed the RTC.s43 file to RTC.S.
When I try to compile my small example (just calling the libraries in fact), it end with this error :
Cannot run programm "/Applications/Energia.app/Contests/Resources/Java/hardware/tools/msp430/bin/avr-gcc": error=2, No such file or directory

It seems Energia is not calling the right compiler for assembler...

Thanks for your help.
Yan.

attachInterrupt(...) sets wrong bit in IES

In the implementation of attachInterrupt(interrupt, function, mode) in file hardware/msp430/cores/msp430/WInterrupts.c the wrong bit is set in the Interrupt Edge Selection (PxIES) register.

CapTouch API [need feedback]

I have a preliminary version of the CapTouch library ready but the current API might be to low level and would like your opinion on naming, level of abstraction, etc:

API:

begin()
Description: initialize the CapTouch library
Parameter: none
Return: none

add(<pin number>)
Description: Add pin to the CapTouch library
Parameter: pin number to add
Return: 0 on fail, pin is not PIN OSC capable, 1 on success

measure(<pin number>)
Description: Measure counts
Parameter: pin number to measure
Return: number of relaxation oscillator cycles (decrease if touched)

Additional API's I am thinking of. Upside is that baseline tracking could be done inside the library.

isTouched(<pin number>)
Description: Determine if the "pin" is touched.
Parameter: pin number to check
Return: true/false

isTouched()
Description: Determine which "pin" that has been added to the library is touch if any.
Parameter: none
Return: pin number being touched or -1 if none (can not use 0 for none since pin 0 could exist).

Example Sketch with current API:


#include <CapTouch.h>

#define LED_PIN 2
#define MIDDLE_BUTTON 13

unsigned int count, base_count, delta_count;
int state = 0;

static const unsigned int threshold = 150;

void setup() {
  Touch.begin();
  Touch.add(MIDDLE_BUTTON);

  base_count = Touch.measure(MIDDLE_BUTTON);

  pinMode(LED_PIN, OUTPUT);
}

void loop() {

  count = Touch.measure(MIDDLE_BUTTON);

  if(base_count < count) {
    base_count = (base_count + count) >> 1;
    delta_count = 0;
  } else {
    delta_count = base_count - count;
  }

  if(delta_count > threshold) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    base_count = base_count - 1;
    digitalWrite(LED_PIN, LOW);
  }

  delay(10);
}

build fails under linux Ubuntu 11.04

$ ant
Buildfile: /home/kimballr/Energia/build/build.xml

build:

revision-check:

linux-checkos:

subprojects-build:

compile:
[methods] No changes to PApplet API.

build:

compile:
[copy] Copying 1 file to /home/kimballr/Energia/app/bin
[copy] Copying /home/kimballr/Energia/app/src/processing/app/Resources_ja.properties to /home/kimballr/Energia/app/bin/processing/app/Resources_ja.properties

build:
[jar] Building jar: /home/kimballr/Energia/app/pde.jar

linux-build:
[copy] Copying 1 file to /home/kimballr/Energia/build/linux/work/lib

assemble:
[unzip] Expanding: /home/kimballr/Energia/build/shared/reference.zip into /home/kimballr/Energia/build/linux/work

BUILD FAILED
/home/kimballr/Energia/build/build.xml:35: The following error occurred while executing this line:
/home/kimballr/Energia/build/build.xml:355: Warning: Could not find file /home/kimballr/Energia/build/linux/dist/energia to copy.

Total time: 2 seconds
$

upload fails with mspdebug on Ubuntu 11.04

Compiled example and tried to upload. Fails saying it can't find the file. However if I copy the
command and paste into a terminal window, it finds the file and uploads it properly.

--- verbose output from IDE ---

 [exec] Binary sketch size: 934 bytes (of a 16,384 byte maximum)
 [exec] /home/kimballr/Energia/hardware/msp430/cores/msp430/wiring.c: In function 'initClocks':
 [exec] /home/kimballr/Energia/hardware/msp430/cores/msp430/wiring.c:74:9: note: #pragma message: Clock set to 16MHz
 [exec] Binary sketch size: 934 bytes (of a 16,384 byte maximum)
 [exec] /home/kimballr/Energia/build/linux/work/hardware/tools/msp430/mspdebug/mspdebug rf2500 --force-reset "prog /tmp/build1067378422286941846.tmp/TimerSerialExample.cpp.hex" 
 [exec] MSPDebug version 0.19 - debugging tool for MSP430 MCUs
 [exec] Copyright (C) 2009-2012 Daniel Beer <[email protected]>
 [exec] This is free software; see the source for copying conditions.  There is NO
 [exec] warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 [exec] 
 [exec] Trying to open interface 1 on 012
 [exec] rf2500: warning: can't detach kernel driver: No data available
 [exec] Initializing FET...
 [exec] FET protocol version is 30066536
 [exec] Configured for Spy-Bi-Wire
 [exec] Sending reset...
 [exec] Set Vcc: 3000 mV
 [exec] Device ID: 0x2553
 [exec]   Code start address: 0xc000
 [exec]   Code size         : 16384 byte = 16 kb
 [exec]   RAM  start address: 0x200
 [exec]   RAM  end   address: 0x3ff
 [exec]   RAM  size         : 512 byte = 0 kb
 [exec] Device: MSP430G2553
 [exec] Code memory starts at 0xc000
 [exec] Number of breakpoints: 2
 [exec] prog: /tmp/build1067378422286941846.tmp/TimerSerialExample.cpp.hex : No such file or directory

Timer based UART is broken

Timer based UART is broken. Only single char send/receive works. Multiple characters send/receive result in garbage or crash.

Include (patched) Arduino MIDI library

There is a MIDI library for the Arduino. I have a use for it on the MSP430.

See: http://arduino.cc/playground/Main/MIDILibrary

It almost works out of the box (with the Hardware serial) but you need to set some smaller buffer sizes due to RAM constraints

  • #define MIDI_SYSEX_ARRAY_SIZE 256
  • #define MIDI_SYSEX_ARRAY_SIZE 1 // can be larger, e.g. 16 bytes if you have some RAM left

Also

include "Arduino.h"

should be commented out. (Arduino.h could be mapped to Energia.h on a global level to be more Arduino compatible)

Is it a plan to include it as lib in Energia?

millis() is broken

Does not seem to work for me. mills() always returns 0.
millis() depends on a WDT running in continuous mode but the WDT is never enabled anywhere there that in delay().

Linux: Problem with serial debug window

There seems to be a problem using the serial debug window in linux. After you use it,
Energia becomes slow (10 seconds response time when clicking some window or menu). Removing the
USB connection makes it work OK again, but plugging in the launchpad makes it slow again.

May be a problem in serial port detection code.

Note: this problem occurs only after doing a download. If you do not do a download, it works OK.
Could be buggy CDC implementation in the launchpad USB firmware.

MAC OSX MSP430 kernel extension not included in distribution

The flash programmer does not work under MAC OSX.
It reports:

rf2500: can't claim interface: Permission denied
rf2500: failed to open RF2500 device

It seems you need a "codeless kernel extension" that is not included in the distribution
See:

http://www.senslab.info/2010/11/installing-the-msp430-toolchain-under-mac-os-x/
https://github.com/colossaldynamics/ez430rf2500

I was not able to get it work under MAC OSX Lion 10.7 (64 bit)

Also, CDC driver is not included in MAC (Launchpad CDC is not compliant with spec)
May need patched driver, like http://code.google.com/p/msp430lpcdc/
(include in dist?)

Relocate TimerSerial

Relocate TimerSerial.[h/cpp] from hardware/msp430/cores/msp430 to hardware/msp430/libraries

Plain-English Messages About Non-Supported Features

Each version of the MSP430 has specific features.

For example, HardwareSerial requires a msp430g2553.

Compiling a sketch using serial for a msp430g2452 fails, but the error messages don't point out the msp430g2452 doesn't support serial port.

/Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/wiring.c: In function 'initClocks':
/Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/wiring.c:74:9: note: #pragma message: Clock set to 16MHz
sketch_apr10a.cpp.o: In function `setup':
sketch_apr10a.cpp:5: undefined reference to `Serial'
sketch_apr10a.cpp:5: undefined reference to `HardwareSerial::begin(unsigned long)'
sketch_apr10a.cpp:6: undefined reference to `Serial'
collect2: ld returned 1 exit status

Create Energia-Specific Folder for preferences.txt

By default, Energia uses /Users/OlS/Library/Arduino/to save preferences.txt.

In order to avoid any interference with Arduino, preferences.txtshould be stored in the specific folder /Users/OlS/Library/Energia/.

Color of errors in the console

Errors are print in same color as the rest of the (informative) output.
How to reproduce:

1: enable "Show verbose output during compilation" in the preferences.
2: Make an intentional error in the sketch.
3: Hit verify.

Two Suggestions for Better Compatibility

After a first look inside Energia.app,

  • 1

File /Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/Arduino.hcontains MPS430-specific code like #include "msp430.h".

To improve clarity, could file /Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/Arduino.hbe renamed /Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/MSP430.h?

  • 2

File /Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/main.cpp includes MSP430-specific code like WDTCTL = WDTPW | WDTHOLD; //!!!!!!!!!!!and __bis_SR_register(GIE);.

To be consistent with other Processing-based IDEs —especially for the rei-vilo/embedXcode project—, could this specific code from •2 main.cpp be transferred to •1 MSP430.h?

P2.6 and P2.7 not accessible?

Hi am I correct if I claim that p2.6 (pin 18) and P2.7 (pin 19) van not be used as digital pins on 20 pin devices?
If so, is there any particular reason for this?

Compiler/linker/downloader prefix, name and options in variables

Would it be an idea to make variables in the source code for the name of the compiler, linker, downloader and its options.
They are hard-coded at several places in the source, and this makes maintaining and porting the code difficult.

If the defaults for these variables can be overridden in the" boards.txt" and "programmers.txt" file a different platform would NOT need a different version of energia (e.g. if the compiler prefix is "arm-none-eabi-" instead of "msp430-" you can use a ARM cpu (that is, in theory).

board.txt:
xxx.build.compiler="msp430-"
xxx.build.c="gcc -c $src -o $target -Os .... other flags....."
xxx.build.cpp="g++ ......."
xxx.build.s="gcc....."
xxx.build.ld="ld...."
etc.

programmers.txt
xxx.program=mspdebug rf2500 "prog $name"

HardwareSerial baudrate > 9600 incorrect

It seems that baudrates above 9600 do not work correctly.
Verified with loopback program on Ubuntu linux:

void setup() { Serial.begin(19200); }
void loop() {
if (Serial.available()) {
char inByte = Serial.read();
Serial.write(inByte);
}
}
9600 bps and lower works,
But higher and you get junk.

Some characters seem to be looped back OK, some not.
Maybe timing is just a bit off.

HardwareSerial Compiling Error

Compiling the following code with a msp430g2553 target

void setup() {
  Serial.begin(9600);
  Serial.print("\n\n\n***\n");
}

void loop() {
  Serial.print(".");
  delay(333);
}

results in error

/Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/wiring.c: In function 'initClocks':
/Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/wiring.c:74:9: note: #pragma message: Clock set to 16MHz
core.a(main.cpp.o): In function `main':
/Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/main.cpp:7: undefined reference to `setup'
/Applications/Energia.app/Contents/Resources/Java/hardware/msp430/cores/msp430/main.cpp:10: undefined reference to `loop'
collect2: ld returned 1 exit status

while embedXcode succeeds based on the same Energia release cc88f9e.

Which Repository: 0023 or 1.0?

Which repository does the Energia project relies on?

  • 0023 = Arduino 0023, Wiring 1.0, chipKIT MPIDE 0023
  • 1.0 = Arduino 1.0

Differences between 0023 and 1.0 aren't very important but unfortunately rather subtle.

Wiring provides a wider set of standard libraries -e.g. vector.h- so it could be a wise decision for Energia to stick on Wiring compliance.

For more about Wiring/Arduino, please refer to Is Wiring 1.0 build 100 Arduino 1.0 compliant?

Prioritisation

Based on Robert's comment on issue #39, is there a way to define priorities to rank the features to add?

For example, slave I2C might be considered as important because of its low-level hardware dependencies, while other higher level libraries rely on hardware-independent libraries and thus could be ported to the LaunchPad platform by contributors who don't have a solid background on MSP430, freeing those precious resources for the former case.

What do you think?

Linux: include compiler path in energia startup script

As the default compiler location for mspgcc is /opt/mspgcc, you may want to include this search path in the
energia startup script:

export PATH=$PATH:/opt/mspgcc/bin

(if the compiler is already in the standard search path, this won't hurt).

Servo output / Use analog write for servos

I would like to implement RC servo output (1 to 2 msec output signal, with 10 to 40 msec period).

  • A simple SW implementation is trivial (digitalWrite+delayMicroseconds) but not optimal.
  • Using the timer is better. The analogWrite function does this already, but the period is fixed to 490 Hz. And just a few pins
  • Implementing a timer ISR to set/reset the digital pins is more flexible for more servos (using 1 timer for multiple servos) but
    less optimal in CPU/Energy.

I would like to use the analog_write function, but then I need to make the fixed period adjustable (from a define to a variable).
An extra function is defined to set this frequency.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.