mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-14 11:29:26 +01:00
Merge branch 'ide-1.5.x-timer-variant' of github.com:matthijskooijman/Arduino into matthijskooijman-ide-1.5.x-timer-variant
This commit is contained in:
commit
e5f34e5a83
@ -693,6 +693,8 @@ public class Compiler implements MessageConsumer {
|
|||||||
|
|
||||||
// 3. compile the core, outputting .o files to <buildPath> and then
|
// 3. compile the core, outputting .o files to <buildPath> and then
|
||||||
// collecting them into the core.a library file.
|
// collecting them into the core.a library file.
|
||||||
|
// Also compiles the variant (if it supplies actual source files),
|
||||||
|
// which are included in the link directly (not through core.a)
|
||||||
void compileCore()
|
void compileCore()
|
||||||
throws RunnerException {
|
throws RunnerException {
|
||||||
|
|
||||||
@ -705,13 +707,9 @@ public class Compiler implements MessageConsumer {
|
|||||||
if (variantFolder != null)
|
if (variantFolder != null)
|
||||||
includeFolders.add(variantFolder);
|
includeFolders.add(variantFolder);
|
||||||
|
|
||||||
List<File> objectFiles = compileFiles(buildFolder, coreFolder, true,
|
List<File> coreObjectFiles = compileFiles(buildFolder, coreFolder, true,
|
||||||
includeFolders);
|
includeFolders);
|
||||||
if (variantFolder != null)
|
for (File file : coreObjectFiles) {
|
||||||
objectFiles.addAll(compileFiles(buildFolder, variantFolder, true,
|
|
||||||
includeFolders));
|
|
||||||
|
|
||||||
for (File file : objectFiles) {
|
|
||||||
|
|
||||||
PreferencesMap dict = new PreferencesMap(prefs);
|
PreferencesMap dict = new PreferencesMap(prefs);
|
||||||
dict.put("ide_version", "" + Base.REVISION);
|
dict.put("ide_version", "" + Base.REVISION);
|
||||||
@ -727,6 +725,10 @@ public class Compiler implements MessageConsumer {
|
|||||||
}
|
}
|
||||||
execAsynchronously(cmdArray);
|
execAsynchronously(cmdArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (variantFolder != null)
|
||||||
|
objectFiles.addAll(compileFiles(buildFolder, variantFolder, true,
|
||||||
|
includeFolders));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 4. link it all together into the .elf file
|
// 4. link it all together into the .elf file
|
||||||
|
@ -71,7 +71,7 @@ public class TargetPlatform {
|
|||||||
if (!boardsFile.exists() || !boardsFile.canRead())
|
if (!boardsFile.exists() || !boardsFile.canRead())
|
||||||
throw new TargetPlatformException(
|
throw new TargetPlatformException(
|
||||||
format(_("Could not find boards.txt in {0}. Is it pre-1.5?"),
|
format(_("Could not find boards.txt in {0}. Is it pre-1.5?"),
|
||||||
boardsFile.getAbsolutePath()));
|
folder.getAbsolutePath()));
|
||||||
|
|
||||||
// Load boards
|
// Load boards
|
||||||
try {
|
try {
|
||||||
|
@ -118,6 +118,7 @@ typedef uint8_t boolean;
|
|||||||
typedef uint8_t byte;
|
typedef uint8_t byte;
|
||||||
|
|
||||||
void init(void);
|
void init(void);
|
||||||
|
void initVariant(void);
|
||||||
|
|
||||||
void pinMode(uint8_t, uint8_t);
|
void pinMode(uint8_t, uint8_t);
|
||||||
void digitalWrite(uint8_t, uint8_t);
|
void digitalWrite(uint8_t, uint8_t);
|
||||||
@ -194,20 +195,21 @@ extern const uint8_t PROGMEM digital_pin_to_timer_PGM[];
|
|||||||
#define TIMER0B 2
|
#define TIMER0B 2
|
||||||
#define TIMER1A 3
|
#define TIMER1A 3
|
||||||
#define TIMER1B 4
|
#define TIMER1B 4
|
||||||
#define TIMER2 5
|
#define TIMER1C 5
|
||||||
#define TIMER2A 6
|
#define TIMER2 6
|
||||||
#define TIMER2B 7
|
#define TIMER2A 7
|
||||||
|
#define TIMER2B 8
|
||||||
|
|
||||||
#define TIMER3A 8
|
#define TIMER3A 9
|
||||||
#define TIMER3B 9
|
#define TIMER3B 10
|
||||||
#define TIMER3C 10
|
#define TIMER3C 11
|
||||||
#define TIMER4A 11
|
#define TIMER4A 12
|
||||||
#define TIMER4B 12
|
#define TIMER4B 13
|
||||||
#define TIMER4C 13
|
#define TIMER4C 14
|
||||||
#define TIMER4D 14
|
#define TIMER4D 15
|
||||||
#define TIMER5A 15
|
#define TIMER5A 16
|
||||||
#define TIMER5B 16
|
#define TIMER5B 17
|
||||||
#define TIMER5C 17
|
#define TIMER5C 18
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
|
@ -19,10 +19,17 @@
|
|||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
// Weak empty variant initialization function.
|
||||||
|
// May be redefined by variant files.
|
||||||
|
void initVariant() __attribute__((weak));
|
||||||
|
void initVariant() { }
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
init();
|
init();
|
||||||
|
|
||||||
|
initVariant();
|
||||||
|
|
||||||
#if defined(USBCON)
|
#if defined(USBCON)
|
||||||
USBDevice.attach();
|
USBDevice.attach();
|
||||||
#endif
|
#endif
|
||||||
|
@ -160,6 +160,14 @@ void analogWrite(uint8_t pin, int val)
|
|||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(TCCR1A) && defined(COM1C1)
|
||||||
|
case TIMER1C:
|
||||||
|
// connect pwm to pin on timer 1, channel B
|
||||||
|
sbi(TCCR1A, COM1C1);
|
||||||
|
OCR1C = val; // set pwm duty
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(TCCR2) && defined(COM21)
|
#if defined(TCCR2) && defined(COM21)
|
||||||
case TIMER2:
|
case TIMER2:
|
||||||
// connect pwm to pin on timer 2
|
// connect pwm to pin on timer 2
|
||||||
|
@ -84,6 +84,9 @@ static void turnOffPWM(uint8_t timer)
|
|||||||
#if defined(TCCR1A) && defined(COM1B1)
|
#if defined(TCCR1A) && defined(COM1B1)
|
||||||
case TIMER1B: cbi(TCCR1A, COM1B1); break;
|
case TIMER1B: cbi(TCCR1A, COM1B1); break;
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(TCCR1A) && defined(COM1C1)
|
||||||
|
case TIMER1C: cbi(TCCR1A, COM1C1); break;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(TCCR2) && defined(COM21)
|
#if defined(TCCR2) && defined(COM21)
|
||||||
case TIMER2: cbi(TCCR2, COM21); break;
|
case TIMER2: cbi(TCCR2, COM21); break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user