Skip to content

Commit df1262a

Browse files
committed
CORE files update following headers update
Signed-off-by: Thibaut VIARD <thibaut.viard@atmel.com>
1 parent 3d1a2e1 commit df1262a

File tree

4 files changed

+48
-19
lines changed

4 files changed

+48
-19
lines changed

cores/arduino/WVariant.h

-4
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ typedef enum _ETCChannel
6464
TCC2_CH1 = (2<<8)|(1),
6565
TC3_CH0 = (3<<8)|(0),
6666
TC3_CH1 = (3<<8)|(1),
67-
TC7_CH0 = (7<<8)|(0),
68-
TC7_CH1 = (7<<8)|(1)
6967
} ETCChannel ;
7068

7169
extern const void* g_apTCInstances[TCC_INST_NUM+TC_INST_NUM] ;
@@ -92,8 +90,6 @@ typedef enum _EPWMChannel
9290
PWM2_CH1=TCC2_CH1,
9391
PWM3_CH0=TC3_CH0,
9492
PWM3_CH1=TC3_CH1,
95-
PWM7_CH0=TC7_CH0,
96-
PWM7_CH1=TC7_CH1
9793
} EPWMChannel ;
9894

9995
typedef enum _EPortType

cores/arduino/startup.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -315,7 +315,7 @@ void SystemInit( void )
315315
/* ----------------------------------------------------------------------------------------------
316316
* 6) Modify PRESCaler value of OSC8M to have 8MHz
317317
*/
318-
SYSCTRL->OSC8M.bit.PRESC = SYSCTRL_OSC8M_PRESC_0_Val ;
318+
SYSCTRL->OSC8M.bit.PRESC = SYSCTRL_OSC8M_PRESC_1_Val ;
319319
SYSCTRL->OSC8M.bit.ONDEMAND = 0 ;
320320

321321
/* ----------------------------------------------------------------------------------------------

cores/arduino/wiring_analog.c

+35-5
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,41 @@
2323
extern "C" {
2424
#endif
2525

26-
void analogReference( eAnalogReference ulMode )
26+
static int _readResolution = 10;
27+
static int _writeResolution = 8;
28+
29+
void analogReadResolution( int res )
30+
{
31+
_readResolution = res ;
32+
}
33+
34+
void analogWriteResolution( int res )
2735
{
36+
_writeResolution = res ;
37+
}
2838

29-
// ATTENTION : On this board the default is note 5volts or 3.3volts BUT 1volt
39+
static inline uint32_t mapResolution( uint32_t value, uint32_t from, uint32_t to )
40+
{
41+
if ( from == to )
42+
{
43+
return value ;
44+
}
3045

31-
switch(ulMode)
46+
if ( from > to )
47+
{
48+
return value >> (from-to) ;
49+
}
50+
else
51+
{
52+
return value << (to-from) ;
53+
}
54+
}
55+
56+
void analogReference( eAnalogReference ulMode )
57+
{
58+
// ATTENTION : On this board the default is not 5volts or 3.3volts BUT 1volt
59+
60+
switch ( ulMode )
3261
{
3362
case AR_DEFAULT:
3463
case AR_INTERNAL:
@@ -41,6 +70,7 @@ void analogReference( eAnalogReference ulMode )
4170
break;
4271
}
4372
}
73+
4474
uint32_t analogRead( uint32_t ulPin )
4575
{
4676
uint32_t valueRead = 0;
@@ -105,7 +135,7 @@ void analogWrite( uint32_t ulPin, uint32_t ulValue )
105135
}
106136

107137
Channelx = GetTCChannelNumber( g_APinDescription[ulPin].ulPWMChannel ) ;
108-
if ( GetTCChannelNumber( g_APinDescription[ulPin].ulPWMChannel ) >= TCC_INST_NUM )
138+
if ( GetTCNumber( g_APinDescription[ulPin].ulPWMChannel ) >= TCC_INST_NUM )
109139
{
110140
isTC = 1 ;
111141
TCx = (Tc*) GetTC( g_APinDescription[ulPin].ulPWMChannel ) ;
@@ -199,7 +229,7 @@ void analogWrite( uint32_t ulPin, uint32_t ulValue )
199229
// -- Defaults to digital write
200230
pinMode( ulPin, OUTPUT ) ;
201231

202-
//ulValue = mapResolution(ulValue, _writeResolution, 8);
232+
ulValue = mapResolution(ulValue, _writeResolution, 8);
203233

204234
if ( ulValue < 128 )
205235
{

variants/arduino_zero/variant.cpp

+12-9
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@
2626
* | 1 | 1 <- TX | PA11 | | EIC/EXTINT[11] ADC/AIN[19] PTC/X[3] *SERCOM0/PAD[3] SERCOM2/PAD[3] TCC1/WO[1] TCC0/WO[3]
2727
* | 2 | ~2 | PA08 | | EIC/NMI ADC/AIN[16] PTC/X[0] SERCOM0/PAD[0] SERCOM2/PAD[0] *TCC0/WO[0] TCC1/WO[2]
2828
* | 3 | ~3 | PA09 | | EIC/EXTINT[9] ADC/AIN[17] PTC/X[1] SERCOM0/PAD[1] SERCOM2/PAD[1] *TCC0/WO[1] TCC1/WO[3]
29-
* | 4 | ~4 | PA14 | | EIC/EXTINT[14] SERCOM2/PAD[2] SERCOM4/PAD[2] TC3/WO[0] *TCC0/WO[4]
30-
* | 5 | ~5 | PA15 | | EIC/EXTINT[15] SERCOM2/PAD[3] SERCOM4/PAD[3] TC3/WO[1] *TCC0/WO[5]
31-
* | 6 | ~6 | PA20 | | EIC/EXTINT[4] PTC/X[8] SERCOM5/PAD[2] SERCOM3/PAD[2] *TC7/WO[0] TCC0/WO[6]
32-
* | 7 | ~7 | PA21 | | EIC/EXTINT[5] PTC/X[9] SERCOM5/PAD[3] SERCOM3/PAD[3] *TC7/WO[1] TCC0/WO[7]
29+
* | 4 | ~4 | PA14 | | EIC/EXTINT[14] SERCOM2/PAD[2] SERCOM4/PAD[2] *TC3/WO[0] TCC0/WO[4]
30+
* | 5 | ~5 | PA15 | | EIC/EXTINT[15] SERCOM2/PAD[3] SERCOM4/PAD[3] *TC3/WO[1] TCC0/WO[5]
31+
* | 6 | ~6 | PA20 | | EIC/EXTINT[4] PTC/X[8] SERCOM5/PAD[2] SERCOM3/PAD[2] *TCC0/WO[6]
32+
* | 7 | ~7 | PA21 | | EIC/EXTINT[5] PTC/X[9] SERCOM5/PAD[3] SERCOM3/PAD[3] *TCC0/WO[7]
3333
* +------------+------------------+--------+-----------------+------------------------------
3434
* | | Digital High | | |
3535
* +------------+------------------+--------+-----------------+------------------------------
@@ -66,7 +66,7 @@
6666
* | 26 | A2 | PB09 | | EIC/EXTINT[9] *ADC/AIN[3] PTC/Y[15] SERCOM4/PAD[1] TC4/WO[1]
6767
* | 27 | A3 | PA04 | | EIC/EXTINT[4] *ADC/AIN[4] AC/AIN[0] PTC/Y[2] SERCOM0/PAD[0] TCC0/WO[0]
6868
* | 28 | A4 | PA05 | | EIC/EXTINT[5] *ADC/AIN[5] AC/AIN[1] PTC/Y[5] SERCOM0/PAD[1] TCC0/WO[1]
69-
* | 29 | A5 | PB02 | | EIC/EXTINT[2] *ADC/AIN[10] PTC/Y[8] SERCOM5/PAD[0] TC6/WO[0]
69+
* | 29 | A5 | PB02 | | EIC/EXTINT[2] *ADC/AIN[10] PTC/Y[8] SERCOM5/PAD[0]
7070
* +------------+------------------+--------+-----------------+------------------------------
7171
* | | LEDs | | |
7272
* +------------+------------------+--------+-----------------+------------------------------
@@ -118,12 +118,15 @@ const PinDescription g_APinDescription[]=
118118
{ PORTA, 11, PIO_SERCOM, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, NOT_ON_PWM, NOT_ON_TIMER, EXTERNAL_INT_11 }, // TX: SERCOM0/PAD[3]
119119

120120
// 2..12
121+
// Digital Low
121122
{ PORTA, 8, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH0, TCC0_CH0, EXTERNAL_INT_NMI }, // TCC0/WO[0]
122123
{ PORTA, 9, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH1, TCC0_CH1, EXTERNAL_INT_9 }, // TCC0/WO[1]
123-
{ PORTA, 14, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH4, TCC0_CH4, EXTERNAL_INT_14 }, // TCC0/WO[4]
124-
{ PORTA, 15, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH5, TCC0_CH5, EXTERNAL_INT_15 }, // TCC0/WO[5]
125-
{ PORTA, 20, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM7_CH0, TC7_CH0, EXTERNAL_INT_4 }, // TC7/WO[0]
126-
{ PORTA, 21, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM7_CH1, TC7_CH1, EXTERNAL_INT_5 }, // TC7/WO[1]
124+
{ PORTA, 14, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH0, TC3_CH0, EXTERNAL_INT_14 }, // TC3/WO[0]
125+
{ PORTA, 15, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM3_CH1, TC3_CH1, EXTERNAL_INT_15 }, // TC3/WO[1]
126+
{ PORTA, 20, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH6, TCC0_CH6, EXTERNAL_INT_4 }, // TC7/WO[0]
127+
{ PORTA, 21, PIO_TIMER, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH7, TCC0_CH7, EXTERNAL_INT_5 }, // TC7/WO[1]
128+
129+
// Digital High
127130
{ PORTA, 6, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM1_CH0, TCC1_CH0, EXTERNAL_INT_4 }, // TCC1/WO[0]
128131
{ PORTA, 7, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM1_CH1, TCC1_CH1, EXTERNAL_INT_5 }, // TCC1/WO[1]
129132
{ PORTA, 18, PIO_TIMER_ALT, (PIN_ATTR_DIGITAL|PIN_ATTR_PWM|PIN_ATTR_TIMER), No_ADC_Channel, PWM0_CH2, TCC0_CH2, EXTERNAL_INT_2 }, // TCC0/WO[2]

0 commit comments

Comments
 (0)