Versão limpa em 04/09/2014. Telnet funcionando.

Dependencies:   EthernetInterface mbed-rtos mbed NTPClient

Committer:
rebonatto
Date:
Thu Sep 04 19:40:18 2014 +0000
Revision:
0:66d8bd1f9d4c
Vers?o do protegemed com limpeza da memoria. Est? com mailbox de 10 posi??es e telnet funcinando.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rebonatto 0:66d8bd1f9d4c 1 /*
rebonatto 0:66d8bd1f9d4c 2 * adc.c
rebonatto 0:66d8bd1f9d4c 3 *
rebonatto 0:66d8bd1f9d4c 4 * Created on: 02/07/2011
rebonatto 0:66d8bd1f9d4c 5 * Author: francisco
rebonatto 0:66d8bd1f9d4c 6 */
rebonatto 0:66d8bd1f9d4c 7
rebonatto 0:66d8bd1f9d4c 8 #include <LPC17xx.h>
rebonatto 0:66d8bd1f9d4c 9 #include "adc.h"
rebonatto 0:66d8bd1f9d4c 10
rebonatto 0:66d8bd1f9d4c 11 void init_adc(int adc_clk)
rebonatto 0:66d8bd1f9d4c 12 {
rebonatto 0:66d8bd1f9d4c 13 // Turn on power to ADC block
rebonatto 0:66d8bd1f9d4c 14 LPC_SC->PCONP |= PCADC;
rebonatto 0:66d8bd1f9d4c 15
rebonatto 0:66d8bd1f9d4c 16 // Turn on ADC peripheral clock
rebonatto 0:66d8bd1f9d4c 17 LPC_SC->PCLKSEL0 &= ~(3 << PCLK_ADC);
rebonatto 0:66d8bd1f9d4c 18 LPC_SC->PCLKSEL0 |= (ADC_CCLK << PCLK_ADC); //CLK/8
rebonatto 0:66d8bd1f9d4c 19
rebonatto 0:66d8bd1f9d4c 20 unsigned int clkdiv = (SystemCoreClock/1)/65;
rebonatto 0:66d8bd1f9d4c 21 clkdiv = clkdiv/adc_clk;
rebonatto 0:66d8bd1f9d4c 22
rebonatto 0:66d8bd1f9d4c 23 LPC_ADC->ADCR &= ~(ADC_OPERATIONAL|ADC_CLKDIV(255));
rebonatto 0:66d8bd1f9d4c 24 LPC_ADC->ADCR |= (ADC_OPERATIONAL|ADC_CLKDIV(clkdiv));
rebonatto 0:66d8bd1f9d4c 25
rebonatto 0:66d8bd1f9d4c 26 //NVIC_EnableIRQ(ADC_IRQn);
rebonatto 0:66d8bd1f9d4c 27 }
rebonatto 0:66d8bd1f9d4c 28
rebonatto 0:66d8bd1f9d4c 29 void setup_start(int mode,int edge)
rebonatto 0:66d8bd1f9d4c 30 {
rebonatto 0:66d8bd1f9d4c 31 LPC_ADC->ADCR |= mode;
rebonatto 0:66d8bd1f9d4c 32 }
rebonatto 0:66d8bd1f9d4c 33
rebonatto 0:66d8bd1f9d4c 34 void select_channels(int adc_ch)
rebonatto 0:66d8bd1f9d4c 35 {
rebonatto 0:66d8bd1f9d4c 36 LPC_ADC->ADCR &= ~(ADC_CH_0|ADC_CH_1|ADC_CH_2|ADC_CH_3|ADC_CH_4|ADC_CH_5|ADC_CH_6|ADC_CH_7);
rebonatto 0:66d8bd1f9d4c 37 LPC_ADC->ADCR |= adc_ch;
rebonatto 0:66d8bd1f9d4c 38
rebonatto 0:66d8bd1f9d4c 39 LPC_ADC->ADINTEN |= (1U<<8);//adc_ch;
rebonatto 0:66d8bd1f9d4c 40
rebonatto 0:66d8bd1f9d4c 41 if(adc_ch&ADC_CH_0)
rebonatto 0:66d8bd1f9d4c 42 {
rebonatto 0:66d8bd1f9d4c 43 LPC_PINCON->PINSEL1 |= 1U<<14;
rebonatto 0:66d8bd1f9d4c 44 LPC_PINCON->PINMODE1 |= 2U<<14;
rebonatto 0:66d8bd1f9d4c 45 }
rebonatto 0:66d8bd1f9d4c 46 if(adc_ch&ADC_CH_1)
rebonatto 0:66d8bd1f9d4c 47 {
rebonatto 0:66d8bd1f9d4c 48 LPC_PINCON->PINSEL1 |= 1U<<16;
rebonatto 0:66d8bd1f9d4c 49 LPC_PINCON->PINMODE1 |= 2U<<16;
rebonatto 0:66d8bd1f9d4c 50 }
rebonatto 0:66d8bd1f9d4c 51 if(adc_ch&ADC_CH_2)
rebonatto 0:66d8bd1f9d4c 52 {
rebonatto 0:66d8bd1f9d4c 53 LPC_PINCON->PINSEL1 |= 1U<<18;
rebonatto 0:66d8bd1f9d4c 54 LPC_PINCON->PINMODE1 |= 2U<<18;
rebonatto 0:66d8bd1f9d4c 55 }
rebonatto 0:66d8bd1f9d4c 56 if(adc_ch&ADC_CH_3)
rebonatto 0:66d8bd1f9d4c 57 {
rebonatto 0:66d8bd1f9d4c 58 LPC_PINCON->PINSEL1 |= 1U<<20;
rebonatto 0:66d8bd1f9d4c 59 LPC_PINCON->PINMODE1 |= 2U<<20;
rebonatto 0:66d8bd1f9d4c 60 }
rebonatto 0:66d8bd1f9d4c 61 if(adc_ch&ADC_CH_4)
rebonatto 0:66d8bd1f9d4c 62 {
rebonatto 0:66d8bd1f9d4c 63 LPC_PINCON->PINSEL3 |= 3U<<28;
rebonatto 0:66d8bd1f9d4c 64 LPC_PINCON->PINMODE3 |= 2U<<28;
rebonatto 0:66d8bd1f9d4c 65 }
rebonatto 0:66d8bd1f9d4c 66 if(adc_ch&ADC_CH_5)
rebonatto 0:66d8bd1f9d4c 67 {
rebonatto 0:66d8bd1f9d4c 68 LPC_PINCON->PINSEL3 |= 3U<<30;
rebonatto 0:66d8bd1f9d4c 69 LPC_PINCON->PINMODE3 |= 2U<<30;
rebonatto 0:66d8bd1f9d4c 70 }
rebonatto 0:66d8bd1f9d4c 71 if(adc_ch&ADC_CH_6)
rebonatto 0:66d8bd1f9d4c 72 {
rebonatto 0:66d8bd1f9d4c 73 LPC_PINCON->PINSEL0 |= 2U<<6;
rebonatto 0:66d8bd1f9d4c 74 LPC_PINCON->PINMODE0 |= 2U<<6;
rebonatto 0:66d8bd1f9d4c 75 }
rebonatto 0:66d8bd1f9d4c 76 if(adc_ch&ADC_CH_7)
rebonatto 0:66d8bd1f9d4c 77 {
rebonatto 0:66d8bd1f9d4c 78 LPC_PINCON->PINSEL0 |= 2U<<4;
rebonatto 0:66d8bd1f9d4c 79 LPC_PINCON->PINMODE0 |= 2U<<4;
rebonatto 0:66d8bd1f9d4c 80 }
rebonatto 0:66d8bd1f9d4c 81 }