aboutsummaryrefslogtreecommitdiffstats
path: root/wirish
Commit message (Collapse)AuthorAgeFilesLines
* Cleaned out libmaple.h; this had wide-ranging implications.Marti Bolivar2011-02-275-12/+20
| | | | | | | | | | | | | | | | | | | Many of the #defines in libmaple.h were board-specific, not MCU-specific. Most of these were only used by code under libmaple/usb/. These were moved into usb_config.h, and are clearly marked as being terrible hacks. I'm going to treat the USB stack as a black box that we'll deal with later. Further, instead of having a variety of #defines like "How many USARTS do I have?", we decide that based on the density of the chip. This is determined by testing for STM32_MEDIUM_DENSITY or STM32_HIGH_DENSITY defines. libmaple currently doesn't support low-density chips, so that suffices. The Makefile will set these automatically based on the MCU. Other offending #defines are ERROR_LED_PORT and ERROR_LED_PIN; these were made optional, but they're set in the Makefile as a hack to keep things working.
* Refactor ADC: Pass device pointer instead of register mapPerry Hung2011-02-272-2/+2
|
* Refactor DACPerry Hung2011-02-271-4/+0
| | | | | DAC header and source slightly cleaned up. Test on Maple Native prototype. Add flags parameter to allow selective enabling of channels.
* libmaple: Refactor ADC routinesPerry Hung2011-02-273-159/+157
| | | | | | ADC routines rewritten, support for ADC2, 3, added. Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
* Trivial wirish_digital.c sanity check + bugfix.Marti Bolivar2011-02-251-0/+5
|
* Rewrote Print class.Marti Bolivar2011-02-242-145/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | The old Print class couldn't print uint64 values, and featured hand-hacked functionality better handled by snprintf(). Redid it using snprintf(), using "[u]int[8,16,32,64]" types for more clarity, and eliminated some private methods in favor of auxiliary functions in Print.cpp. Breaking compatibility with original implementation in three ways: - Print::print(double) is now accurate to 6 digits, rather than 2; this is consistent with the default behavior of the %f format specifier, and if you're using floating point, it's slow enough that you probably want the increased accuracy. - The only bases you can print a number to are 2, 8, 10, and 16. 8, 10, and 16 already have format specifiers, and 2 is an important special case; others complicate matters unnecessarily. - Printing numbers in bases other than 10 treats them as unsigned quantities (i.e., won't print '-' characters). This is more consistent with C++'s behavior for hexadecimal and octal literals (e.g., 0xFFFFFFFF has type uint32). Updated HardwareSerial and USBSerial class documentation to reflect the new behavior.
* Generalizing adc_init() to allow user to select sample timeMarti Bolivar2011-02-171-2/+4
|
* Merge branch 'nzmichaelh-master' into master.Marti Bolivar2011-02-162-7/+6
|\ | | | | | | | | | | | | | | | | This provides DMA, IWDG, PWR, and BKP support, and fixes several bugs. Conflicts: libmaple/adc.h libmaple/libmaple.h libmaple/ring_buffer.h
| * nvic bugfix; removed unnecessary volatile usageMarti Bolivar2011-01-311-1/+1
| |
| * Make systick.h C++ safe. Expose the sys tick count via systick.h and remove ↵Michael Hope2010-10-101-2/+0
| | | | | | | | other externs.
| * Merge remote branch 'upstream/master'Michael Hope2010-09-2927-712/+809
| |\
| * | Fixed up the build due to a missing header file.Michael Hope2010-09-291-4/+5
| | |
* | | Merge branch 'debug-serialusb'Marti Bolivar2011-02-121-2/+12
|\ \ \ | | | | | | | | | | | | | | | | | | | | Conflicts: libmaple/usb/usb.c notes/coding_standard.txt
| * \ \ Merge branch 'master' into debug-serialusb.Marti Bolivar2010-12-2112-70/+224
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Chose debug-serialusb version in cases of conflict. Conflicts: libmaple/usb/usb_callbacks.c
| * | | | fixed broken build from usb_serial.cppAJM2010-12-131-2/+2
| | | | | | | | | | | | | | | | | | | | oops
| * | | | made SerialUSB.read blockingAJM2010-12-131-2/+12
| | | | | | | | | | | | | | | | | | | | it should have been blocking before but wasnt. see bug #49
* | | | | Made Native prototype B definitions in libmaple.h and boards.h; addedMarti Bolivar2011-02-101-116/+214
| | | | | | | | | | | | | | | | | | | | notes/native-pin-definitions.txt (copied from ST datasheet).
* | | | | Ported libmaple to the new mini prototypeMarti Bolivar2011-01-271-62/+62
| |/ / / |/| | |
* | | | Finalized 0.0.9 documentation.Marti Bolivar2010-12-156-43/+62
| | | |
* | | | Merge branch 'master' into newdocMarti Bolivar2010-12-1413-187/+431
|\| | |
| * | | Servo library tested and debugged.Marti Bolivar2010-12-0810-177/+289
| | | | | | | | | | | | | | | | | | | | Some additional HardwareTimer methods introduced to make this convenient; ancillary libmaple/timers.h changes resulted.
| * | | added interrupts()/noInterrupts()Marti Bolivar2010-12-021-0/+27
| | | |
| * | | maple mini prototype seems to be workingMarti Bolivar2010-11-304-8/+115
| | | |
* | | | Finished converting the Arduino docsMarti Bolivar2010-11-292-4/+11
| | | |
* | | | arduino language reference nearing completion, properly CC-BY-SA 3.0 attributedMarti Bolivar2010-11-178-24/+154
|/ / /
* | | fixed highByte() implementation for when sizeof(argument) > 2Marti Bolivar2010-11-161-2/+2
| | |
* | | removed arduino/gpl dependency in bits.h; added binary notation for bytes ↵Marti Bolivar2010-11-102-50/+603
| | | | | | | | | | | | (e.g. B10110011)
* | | maple mini runs blinky now.Marti Bolivar2010-10-228-88/+522
| | | | | | | | | | | | still need usb descriptors to improve, and also nothing else is tested.
* | | Merge branch 'master' of github.com:leaflabs/libmapleMarti Bolivar2010-10-143-43/+61
|\ \ \
| * | | Add selective enabling of channels for pwm channelsPerry Hung2010-10-123-43/+61
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | pinMode(PWM) turns the channel on, other modes should turn it off Fixes bug with conflicting timer for spi1 and timer. This is not well-tested. Conflicts: libmaple/timers.c
* / | more sphinx docsMarti Bolivar2010-10-111-0/+2
|/ /
* | Fix HardwareSPI to pass SPI modes for CPOL and CPHAPerry Hung2010-09-281-1/+1
| |
* | cleanupsMarti Bolivar2010-09-274-100/+100
| |
* | wirish reformatted and code-styledMarti Bolivar2010-09-2623-567/+685
| |
* | Enable external interrupts on all Maple GPIOs.Perry Hung2010-09-223-87/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend the wirish attachInterrupt() and detachInterrupt() interface to work with all GPIOs. Note: The STM32 external interrupt lines are multiplexed between GPIO ports. While any GPIO can be used as an external interrupt, not all of them can be used at the same time. Each EXTI[n] line selects between PA[n], PB[n], PC[n], etc. For example, line EXTI5 can be used with STM32 pins PA5, PB5, or PC5, but not all at the same time. See table: EXTI Line Maple Pin STM32 Pin 0 D2 PA0 0 D27 PB0 0 D15 PC0 1 D3 PA1 1 D28 PB1 1 D16 PC1 2 D1 PA2 2 D17 PC2 2 D25 PD2 3 D0 PA3 3 D18 PC3 4 D10 PA4 4 D19 PC4 5 D13 PA5 5 D4 PB5 5 D20 PC5 6 D12 PA6 6 D5 PB6 6 D35 PC6 7 D11 PA7 7 D9 PB7 7 D36 PC7 8 D6 PA8 8 D14 PB8 8 D37 PC8 9 D7 PA9 9 D24 PB9 9 D38 PC9 (BUT) 10 D8 PA10 10 D29 PB10 10 D26 PC10 11 D30 PB11 12 D31 PB12 13 D32 PB13 13 D21 PC13 14 D33 PB14 14 D22 PC14 15 D34 PB15 15 D23 PC15
* | Add PWM_OPEN_DRAIN option to pinMode()Perry Hung2010-09-212-1/+5
|/ | | | | | Allow for alternate function open drain output mode to be accessed through the wirish interface. This allows for open drain to be used on PWM pins.
* bugfix MAPLE_RELOAD_VAL, whitespace fixesMarti Bolivar2010-09-133-7/+10
|
* systick testing and simplificationbnewbold2010-09-054-85/+0
| | | | | | ripped out marti's SystemTick for the sake of simplicity and added a systick_resume function to libmaple. new example program demonstrates the functionality, also demonstrates micros()/USB bug
* timer refactor (c, not c++)bnewbold2010-09-055-58/+19
| | | | also removed an old ASSERT()
* Off-by-one in timer setPeriod() functionbnewbold2010-09-021-2/+2
| | | | Thanks CarlO!
* added 'unused' attribs and reset default targetbnewbold2010-09-021-3/+4
|
* Various fixes, working with Maplebnewbold2010-09-0114-163/+299
|\
| * Portability fixesbnewbold2010-08-311-1/+1
| | | | | | | | Still not working but fixed a lot of merge errors
| * Merge maple-native changes into portablebnewbold2010-08-3115-306/+414
| |\ | | | | | | | | | This compiles for both maple and maple_native but is untested.
| | * Further wirish portability progressbnewbold2010-08-3110-29/+147
| | | | | | | | | | | | Sort of ugly changes. Compiles but untested.
| | * Partial progress on wirish portabilitybnewbold2010-08-318-153/+165
| | | | | | | | | | | | | | | This version throws "defined but unused" warnings which could probably be squashed with #pragma
| | * inital portability workbnewbold2010-08-251-6/+0
| | |
| * | Some refactoringbnewbold2010-08-051-8/+27
| | |
* | | added support to enable/disable systick in wirishMarti Bolivar2010-08-314-1/+86
| | |
* | | fix reset.py to work on OS X,; .gitignore leaves out ~ files; cleanupMarti Bolivar2010-08-291-1/+1
| |/ |/| | | | | support/make/build-rules.mk