A Nucleo program using a CC3000 wifi chip to ping

Dependencies:   NVIC_set_all_priorities TextLCD cc3000_hostdriver_mbedsocket mbed

Committer:
MarcoAmerena
Date:
Thu Jul 10 12:26:06 2014 +0000
Revision:
0:2aa37889f076
NucleoWifi 1.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MarcoAmerena 0:2aa37889f076 1 /* mbed Microcontroller Library
MarcoAmerena 0:2aa37889f076 2 * Copyright (c) 2006-2013 ARM Limited
MarcoAmerena 0:2aa37889f076 3 *
MarcoAmerena 0:2aa37889f076 4 * Licensed under the Apache License, Version 2.0 (the "License");
MarcoAmerena 0:2aa37889f076 5 * you may not use this file except in compliance with the License.
MarcoAmerena 0:2aa37889f076 6 * You may obtain a copy of the License at
MarcoAmerena 0:2aa37889f076 7 *
MarcoAmerena 0:2aa37889f076 8 * http://www.apache.org/licenses/LICENSE-2.0
MarcoAmerena 0:2aa37889f076 9 *
MarcoAmerena 0:2aa37889f076 10 * Unless required by applicable law or agreed to in writing, software
MarcoAmerena 0:2aa37889f076 11 * distributed under the License is distributed on an "AS IS" BASIS,
MarcoAmerena 0:2aa37889f076 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
MarcoAmerena 0:2aa37889f076 13 * See the License for the specific language governing permissions and
MarcoAmerena 0:2aa37889f076 14 * limitations under the License.
MarcoAmerena 0:2aa37889f076 15 */
MarcoAmerena 0:2aa37889f076 16 #include "main.h"
MarcoAmerena 0:2aa37889f076 17 #include "mbed.h"
MarcoAmerena 0:2aa37889f076 18 #include "NVIC_set_all_priorities.h"
MarcoAmerena 0:2aa37889f076 19
MarcoAmerena 0:2aa37889f076 20 #if (MY_BOARD == WIGO)
MarcoAmerena 0:2aa37889f076 21 void init()
MarcoAmerena 0:2aa37889f076 22 {
MarcoAmerena 0:2aa37889f076 23 DigitalOut PWR_EN1(PTB2);
MarcoAmerena 0:2aa37889f076 24 DigitalOut PWR_EN2(PTB3);
MarcoAmerena 0:2aa37889f076 25
MarcoAmerena 0:2aa37889f076 26 // Wi-Go set current to 500mA since we're turning on the Wi-Fi
MarcoAmerena 0:2aa37889f076 27 PWR_EN1 = 0;
MarcoAmerena 0:2aa37889f076 28 PWR_EN2 = 1;
MarcoAmerena 0:2aa37889f076 29
MarcoAmerena 0:2aa37889f076 30 NVIC_set_all_irq_priorities(3);
MarcoAmerena 0:2aa37889f076 31 NVIC_SetPriority(SPI0_IRQn, 0x0); // Wi-Fi SPI interrupt must be higher priority than SysTick
MarcoAmerena 0:2aa37889f076 32 NVIC_SetPriority(PORTA_IRQn, 0x1);
MarcoAmerena 0:2aa37889f076 33 NVIC_SetPriority(SysTick_IRQn, 0x2); // SysTick set to lower priority than Wi-Fi SPI bus interrupt
MarcoAmerena 0:2aa37889f076 34 PORTA->PCR[16] |=PORT_PCR_ISF_MASK;
MarcoAmerena 0:2aa37889f076 35 PORTA->ISFR |= (1 << 16);
MarcoAmerena 0:2aa37889f076 36 }
MarcoAmerena 0:2aa37889f076 37
MarcoAmerena 0:2aa37889f076 38 #elif (MY_BOARD == WIFI_DIPCORTEX)
MarcoAmerena 0:2aa37889f076 39 void init()
MarcoAmerena 0:2aa37889f076 40 {
MarcoAmerena 0:2aa37889f076 41 NVIC_SetPriority(SSP1_IRQn, 0x0);
MarcoAmerena 0:2aa37889f076 42 NVIC_SetPriority(PIN_INT0_IRQn, 0x1);
MarcoAmerena 0:2aa37889f076 43
MarcoAmerena 0:2aa37889f076 44 // SysTick set to lower priority than Wi-Fi SPI bus interrupt
MarcoAmerena 0:2aa37889f076 45 NVIC_SetPriority(SysTick_IRQn, 0x2);
MarcoAmerena 0:2aa37889f076 46 }
MarcoAmerena 0:2aa37889f076 47
MarcoAmerena 0:2aa37889f076 48 #elif (MY_BOARD == WIFI_SHIELD_ADAFRUIT)
MarcoAmerena 0:2aa37889f076 49 void init()
MarcoAmerena 0:2aa37889f076 50 {
MarcoAmerena 0:2aa37889f076 51 NVIC_SetPriority(SPI1_IRQn, 0x0);
MarcoAmerena 0:2aa37889f076 52 NVIC_SetPriority(FPU_IRQn, 0x1);
MarcoAmerena 0:2aa37889f076 53 NVIC_SetPriority(SysTick_IRQn, 0x2);
MarcoAmerena 0:2aa37889f076 54 }
MarcoAmerena 0:2aa37889f076 55
MarcoAmerena 0:2aa37889f076 56 #else
MarcoAmerena 0:2aa37889f076 57 void init()
MarcoAmerena 0:2aa37889f076 58 {
MarcoAmerena 0:2aa37889f076 59 }
MarcoAmerena 0:2aa37889f076 60
MarcoAmerena 0:2aa37889f076 61 #endif