Initial work for McHCK mk20dx128vlf5 port.
This commit is contained in:
		
							parent
							
								
									c203d23be5
								
							
						
					
					
						commit
						acf8cb979c
					
				
					 12 changed files with 89 additions and 37 deletions
				
			
		| 
						 | 
				
			
			@ -20,8 +20,9 @@ set( CHIP
 | 
			
		|||
#	"at90usb162"       # Teensy   1.0 (avr)
 | 
			
		||||
#	"atmega32u4"       # Teensy   2.0 (avr)
 | 
			
		||||
#	"at90usb646"       # Teensy++ 1.0 (avr)
 | 
			
		||||
	"at90usb1286"      # Teensy++ 2.0 (avr)
 | 
			
		||||
#	"at90usb1286"      # Teensy++ 2.0 (avr)
 | 
			
		||||
#	"mk20dx128"        # Teensy   3.0 (arm)
 | 
			
		||||
	"mk20dx128vlf5"    # McHCK    mk20dx128vlf5
 | 
			
		||||
#	"mk20dx256"        # Teensy   3.1 (arm)
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -46,7 +47,7 @@ include( Lib/CMake/initialize.cmake )
 | 
			
		|||
#| Please look at the {Scan,Macro,Output,Debug} for information on the modules and how to create new ones
 | 
			
		||||
 | 
			
		||||
##| Deals with acquiring the keypress information and turning it into a key index
 | 
			
		||||
set(   ScanModule "DPH" )
 | 
			
		||||
set(   ScanModule "MDPure" )
 | 
			
		||||
 | 
			
		||||
##| Provides the mapping functions for DefaultMap and handles any macro processing before sending to the OutputModule
 | 
			
		||||
set(  MacroModule "PartialMap" )
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,7 @@ set( _CMAKE_TOOLCHAIN_PREFIX arm-none-eabi- )
 | 
			
		|||
 | 
			
		||||
#| Chip Name (Linker)
 | 
			
		||||
#|
 | 
			
		||||
#| "mk20dx128"        # Teensy   3.0
 | 
			
		||||
#| "mk20dx128"        # Teensy   3.0 and McHCK mk20dx128
 | 
			
		||||
#| "mk20dx256"        # Teensy   3.1
 | 
			
		||||
 | 
			
		||||
message( STATUS "Chip Selected:" )
 | 
			
		||||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ set( MCU "${CHIP}" ) # For loading script compatibility
 | 
			
		|||
 | 
			
		||||
#| Chip Size Database
 | 
			
		||||
#| Teensy 3.0
 | 
			
		||||
if ( "${CHIP}" MATCHES "mk20dx128" )
 | 
			
		||||
if ( "${CHIP}" MATCHES "mk20dx128" OR "${CHIP}" MATCHES "mk20dx128vlf5" )
 | 
			
		||||
	set( SIZE_RAM    16384 )
 | 
			
		||||
	set( SIZE_FLASH 131072 )
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -65,7 +65,7 @@ endif ()
 | 
			
		|||
#| You _MUST_ set this to match the board you are using
 | 
			
		||||
#| type "make clean" after changing this, so all files will be rebuilt
 | 
			
		||||
#|
 | 
			
		||||
#| "cortex-m4"        # Teensy   3.0, 3.1
 | 
			
		||||
#| "cortex-m4"        # Teensy   3.0, 3.1, McHCK
 | 
			
		||||
set( CPU "cortex-m4" )
 | 
			
		||||
 | 
			
		||||
message( STATUS "CPU Selected:" )
 | 
			
		||||
| 
						 | 
				
			
			@ -83,9 +83,14 @@ message( STATUS "Compiler Source Files:" )
 | 
			
		|||
message( "${COMPILER_SRCS}" )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#| USB Defines
 | 
			
		||||
set( VENDOR_ID  "0x16C0" )
 | 
			
		||||
set( PRODUCT_ID "0x0487" )
 | 
			
		||||
#| USB Defines, this is how the loader programs detect which type of chip base is used
 | 
			
		||||
if ( "${CHIP}" MATCHES "mk20dx128" OR "${CHIP}" MATCHES "mk20dx256" )
 | 
			
		||||
	set( VENDOR_ID  "0x16C0" )
 | 
			
		||||
	set( PRODUCT_ID "0x0487" )
 | 
			
		||||
elseif ( "${CHIP}" MATCHES "mk20dx128vlf5" )
 | 
			
		||||
	set( VENDOR_ID  "0x2323" )
 | 
			
		||||
	set( PRODUCT_ID "0x0001" )
 | 
			
		||||
endif ()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#| Compiler flag to set the C Standard level.
 | 
			
		||||
| 
						 | 
				
			
			@ -113,11 +118,6 @@ set( TUNING "-mthumb -nostdlib -fdata-sections -ffunction-sections -fshort-wchar
 | 
			
		|||
set( OPT "s" )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#| Output Format
 | 
			
		||||
#| srec, ihex, binary
 | 
			
		||||
set( FORMAT "ihex" )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#| Processor frequency.
 | 
			
		||||
#|   Normally the first thing your program should do is set the clock prescaler,
 | 
			
		||||
#|   so your program will run at the correct speed.  You should also set this
 | 
			
		||||
| 
						 | 
				
			
			@ -140,7 +140,11 @@ set( LINKER_FLAGS "-mcpu=${CPU} -Wl,-Map=${TARGET}.map,--cref -Wl,--gc-sections
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
#| Hex Flags (XXX, CMake seems to have issues if you quote the arguments for the custom commands...)
 | 
			
		||||
set( HEX_FLAGS -O ${FORMAT} -R .eeprom )
 | 
			
		||||
set( HEX_FLAGS -O ihex -R .eeprom )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#| Binary Flags
 | 
			
		||||
set( BIN_FLAGS -O binary )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#| Lss Flags
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -286,8 +286,16 @@ set_target_properties( ${TARGET_ELF} PROPERTIES
 | 
			
		|||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#| Convert the .ELF into a .bin to load onto the McHCK
 | 
			
		||||
set( TARGET_BIN ${TARGET}.dfu.bin )
 | 
			
		||||
add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
 | 
			
		||||
	COMMAND ${CMAKE_OBJCOPY} ${BIN_FLAGS} ${TARGET_ELF} ${TARGET_BIN}
 | 
			
		||||
	COMMENT "Creating binary file to load:  ${TARGET_BIN}"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#| Convert the .ELF into a .HEX to load onto the Teensy
 | 
			
		||||
set( TARGET_HEX ${TARGET}.hex )
 | 
			
		||||
set( TARGET_HEX ${TARGET}.teensy.hex )
 | 
			
		||||
add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
 | 
			
		||||
	COMMAND ${CMAKE_OBJCOPY} ${HEX_FLAGS} ${TARGET_ELF} ${TARGET_HEX}
 | 
			
		||||
	COMMENT "Creating iHex file to load:    ${TARGET_HEX}"
 | 
			
		||||
| 
						 | 
				
			
			@ -323,8 +331,8 @@ add_custom_command( TARGET ${TARGET_ELF} POST_BUILD
 | 
			
		|||
 | 
			
		||||
#| After Changes Size Information
 | 
			
		||||
add_custom_target( SizeAfter ALL
 | 
			
		||||
	COMMAND ${CMAKE_SOURCE_DIR}/Lib/CMake/sizeCalculator ${CMAKE_SIZE} ${FORMAT} ${TARGET_ELF} ${SIZE_RAM}   " SRAM"
 | 
			
		||||
	COMMAND ${CMAKE_SOURCE_DIR}/Lib/CMake/sizeCalculator ${CMAKE_SIZE} ${FORMAT} ${TARGET_HEX} ${SIZE_FLASH} "Flash"
 | 
			
		||||
	COMMAND ${CMAKE_SOURCE_DIR}/Lib/CMake/sizeCalculator ${CMAKE_SIZE} ihex ${TARGET_ELF} ${SIZE_RAM}   " SRAM"
 | 
			
		||||
	COMMAND ${CMAKE_SOURCE_DIR}/Lib/CMake/sizeCalculator ${CMAKE_SIZE} ihex ${TARGET_HEX} ${SIZE_FLASH} "Flash"
 | 
			
		||||
	DEPENDS ${TARGET_ELF}
 | 
			
		||||
	COMMENT "Chip usage for ${CHIP}"
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@
 | 
			
		|||
#define __INTERRUPTS_H
 | 
			
		||||
 | 
			
		||||
// ARM
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
 | 
			
		||||
#include <Lib/mk20dx.h>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -45,7 +45,7 @@
 | 
			
		|||
// ----- Defines -----
 | 
			
		||||
 | 
			
		||||
// ARM
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
 | 
			
		||||
// Map the Interrupt Enable/Disable to the AVR names
 | 
			
		||||
#define cli() __disable_irq()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
// ARM
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
 | 
			
		||||
#include <Lib/mk20dx.h>
 | 
			
		||||
#include <Lib/delay.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
// ARM
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
 | 
			
		||||
#include <Lib/mk20dx.h>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,7 +30,7 @@
 | 
			
		|||
// ----- Includes -----
 | 
			
		||||
 | 
			
		||||
// ARM
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
 | 
			
		||||
#include <Lib/mk20dx.h>
 | 
			
		||||
#include <Lib/delay.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,7 @@
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
// ARM
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
 | 
			
		||||
#include <Lib/mk20dx.h>
 | 
			
		||||
#include <Lib/delay.h>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										43
									
								
								Lib/mk20dx.c
									
										
									
									
									
								
							
							
						
						
									
										43
									
								
								Lib/mk20dx.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
/* Teensyduino Core Library
 | 
			
		||||
 * http://www.pjrc.com/teensy/
 | 
			
		||||
 * Copyright (c) 2013 PJRC.COM, LLC.
 | 
			
		||||
 * Modifications by Jacob Alexander 2014
 | 
			
		||||
 *
 | 
			
		||||
 * Permission is hereby granted, free of charge, to any person obtaining
 | 
			
		||||
 * a copy of this software and associated documentation files (the
 | 
			
		||||
| 
						 | 
				
			
			@ -183,7 +184,7 @@ void (* const gVectors[])(void) =
 | 
			
		|||
	fault_isr,					// 13 --
 | 
			
		||||
	pendablesrvreq_isr,				// 14 ARM: Pendable req serv(PendableSrvReq)
 | 
			
		||||
	systick_isr,					// 15 ARM: System tick timer (SysTick)
 | 
			
		||||
#if defined(_mk20dx128_)
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_)
 | 
			
		||||
	dma_ch0_isr,					// 16 DMA channel 0 transfer complete
 | 
			
		||||
	dma_ch1_isr,					// 17 DMA channel 1 transfer complete
 | 
			
		||||
	dma_ch2_isr,					// 18 DMA channel 2 transfer complete
 | 
			
		||||
| 
						 | 
				
			
			@ -358,6 +359,43 @@ void startup_late_hook(void)		__attribute__ ((weak, alias("startup_unused_hook")
 | 
			
		|||
__attribute__ ((section(".startup")))
 | 
			
		||||
void ResetHandler(void)
 | 
			
		||||
{
 | 
			
		||||
#if defined(_mk20dx128vlf5_)
 | 
			
		||||
	/* Disable Watchdog */
 | 
			
		||||
	WDOG_UNLOCK = WDOG_UNLOCK_SEQ1;
 | 
			
		||||
	WDOG_UNLOCK = WDOG_UNLOCK_SEQ2;
 | 
			
		||||
	WDOG_STCTRLH = WDOG_STCTRLH_ALLOWUPDATE;
 | 
			
		||||
 | 
			
		||||
        /* FLL at 48MHz */
 | 
			
		||||
	MCG_C4 = MCG_C4_DMX32 | MCG_C4_DRST_DRS(1);
 | 
			
		||||
	/*
 | 
			
		||||
        MCG.c4.raw = ((struct MCG_C4_t){
 | 
			
		||||
                        .drst_drs = MCG_DRST_DRS_MID,
 | 
			
		||||
                        .dmx32 = 1
 | 
			
		||||
                }).raw;
 | 
			
		||||
	*/
 | 
			
		||||
	SIM_SOPT2 = SIM_SOPT2_PLLFLLSEL;
 | 
			
		||||
 | 
			
		||||
	// release I/O pins hold, if we woke up from VLLS mode
 | 
			
		||||
	if (PMC_REGSC & PMC_REGSC_ACKISO) PMC_REGSC |= PMC_REGSC_ACKISO;
 | 
			
		||||
 | 
			
		||||
	uint32_t *src = &_etext;
 | 
			
		||||
	uint32_t *dest = &_sdata;
 | 
			
		||||
	unsigned int i;
 | 
			
		||||
 | 
			
		||||
	while (dest < &_edata) *dest++ = *src++;
 | 
			
		||||
	dest = &_sbss;
 | 
			
		||||
	while (dest < &_ebss) *dest++ = 0;
 | 
			
		||||
	SCB_VTOR = 0;	// use vector table in flash
 | 
			
		||||
 | 
			
		||||
	// default all interrupts to medium priority level
 | 
			
		||||
	for (i=0; i < NVIC_NUM_INTERRUPTS; i++) NVIC_SET_PRIORITY(i, 128);
 | 
			
		||||
 | 
			
		||||
	__enable_irq();
 | 
			
		||||
	__libc_init_array();
 | 
			
		||||
 | 
			
		||||
        //memcpy(&_sdata, &_sidata, (uintptr_t)&_edata - (uintptr_t)&_sdata);
 | 
			
		||||
        //memset(&_sbss, 0, (uintptr_t)&_ebss - (uintptr_t)&_sbss);
 | 
			
		||||
#else
 | 
			
		||||
	uint32_t *src = &_etext;
 | 
			
		||||
	uint32_t *dest = &_sdata;
 | 
			
		||||
	unsigned int i;
 | 
			
		||||
| 
						 | 
				
			
			@ -368,7 +406,7 @@ void ResetHandler(void)
 | 
			
		|||
	startup_early_hook();
 | 
			
		||||
 | 
			
		||||
	// enable clocks to always-used peripherals
 | 
			
		||||
#if defined(_mk20dx128_)
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_)
 | 
			
		||||
	SIM_SCGC5 = 0x00043F82;		// clocks active to all GPIO
 | 
			
		||||
	SIM_SCGC6 = SIM_SCGC6_RTC | SIM_SCGC6_FTM0 | SIM_SCGC6_FTM1 | SIM_SCGC6_ADC0 | SIM_SCGC6_FTFL;
 | 
			
		||||
#elif defined(_mk20dx256_)
 | 
			
		||||
| 
						 | 
				
			
			@ -458,6 +496,7 @@ void ResetHandler(void)
 | 
			
		|||
	}
 | 
			
		||||
*/
 | 
			
		||||
	startup_late_hook();
 | 
			
		||||
#endif
 | 
			
		||||
	main();
 | 
			
		||||
	while (1) ;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1795,7 +1795,7 @@ typedef struct {
 | 
			
		|||
#define NVIC_SET_PRIORITY(irqnum, priority)  (*((volatile uint8_t *)0xE000E400 + (irqnum)) = (uint8_t)(priority))
 | 
			
		||||
#define NVIC_GET_PRIORITY(irqnum) (*((uint8_t *)0xE000E400 + (irqnum)))
 | 
			
		||||
 | 
			
		||||
#if defined(_mk20dx128_)
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_)
 | 
			
		||||
#define IRQ_DMA_CH0		0
 | 
			
		||||
#define IRQ_DMA_CH1		1
 | 
			
		||||
#define IRQ_DMA_CH2		2
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
// USB Includes
 | 
			
		||||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
 | 
			
		||||
#include "avr/usb_keyboard_serial.h"
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
#include "arm/usb_dev.h"
 | 
			
		||||
#include "arm/usb_keyboard.h"
 | 
			
		||||
#include "arm/usb_serial.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -140,7 +140,7 @@ inline void Output_firmwareReload()
 | 
			
		|||
{
 | 
			
		||||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
 | 
			
		||||
	usb_debug_reload();
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
	usb_device_reload();
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -159,7 +159,7 @@ inline int Output_getchar()
 | 
			
		|||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
 | 
			
		||||
	// XXX Make sure to check output_availablechar() first! Information is lost with the cast (error codes)
 | 
			
		||||
	return (int)usb_serial_getchar();
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
	return usb_serial_getchar();
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -177,7 +177,7 @@ inline int Output_putstr( char* str )
 | 
			
		|||
{
 | 
			
		||||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
 | 
			
		||||
	uint16_t count = 0;
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM
 | 
			
		||||
	uint32_t count = 0;
 | 
			
		||||
#endif
 | 
			
		||||
	// Count characters until NULL character, then send the amount counted
 | 
			
		||||
| 
						 | 
				
			
			@ -193,7 +193,7 @@ inline void Output_softReset()
 | 
			
		|||
{
 | 
			
		||||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
 | 
			
		||||
	usb_debug_software_reset();
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx256_)
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_)
 | 
			
		||||
	SOFTWARE_RESET();
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										8
									
								
								main.c
									
										
									
									
									
								
							
							
						
						
									
										8
									
								
								main.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -94,7 +94,7 @@ inline void pinSetup(void)
 | 
			
		|||
	PORTF = 0x00;
 | 
			
		||||
 | 
			
		||||
// ARM
 | 
			
		||||
#elif defined(_mk20dx128_)
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM
 | 
			
		||||
	// TODO - Should be cleared, but not that necessary due to the pin layout
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -115,7 +115,7 @@ inline void usbTimerSetup(void)
 | 
			
		|||
	TIMSK0 = (1 << TOIE0);
 | 
			
		||||
 | 
			
		||||
// ARM
 | 
			
		||||
#elif defined(_mk20dx128_)
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM
 | 
			
		||||
	// 48 MHz clock by default
 | 
			
		||||
 | 
			
		||||
	// System Clock Gating Register Disable
 | 
			
		||||
| 
						 | 
				
			
			@ -184,7 +184,7 @@ int main(void)
 | 
			
		|||
// USB Keyboard Data Send Counter Interrupt
 | 
			
		||||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
 | 
			
		||||
ISR( TIMER0_OVF_vect )
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM
 | 
			
		||||
#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM
 | 
			
		||||
void pit0_isr(void)
 | 
			
		||||
#endif
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -194,7 +194,7 @@ void pit0_isr(void)
 | 
			
		|||
		sendKeypresses = 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#if defined(_mk20dx128_) // ARM
 | 
			
		||||
#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM
 | 
			
		||||
	// Clear the interrupt flag
 | 
			
		||||
	PIT_TFLG0 = 1;
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue