+ All Categories
Home > Documents > C Examples 3

C Examples 3

Date post: 30-Dec-2015
Category:
Upload: arden-glover
View: 37 times
Download: 0 times
Share this document with a friend
Description:
C Examples 3. Download Links. dsPIC30F4011/4012 Data Sheet dsPIC30F4013/3014 dsPIC30F Family Reference Manual MikroC MikroC Manual MikroC Quick Reference. Key DEBOUNCING. Key DEBOUNCING – 3 (SWITCH4B). void main() { int start = 0; ADPCFG = 0xFFFF; TRISB=0b111111101; PORTB=0x0000; - PowerPoint PPT Presentation
Popular Tags:
20
C Examples 3
Transcript

C Examples 3

Download Links

dsPIC30F4011/4012 Data Sheet dsPIC30F4013/3014 dsPIC30F Family Reference Manual MikroC MikroC Manual MikroC Quick Reference

Key DEBOUNCING

Key DEBOUNCING – 3(SWITCH4B)void main(){int start = 0;ADPCFG = 0xFFFF;TRISB=0b111111101;PORTB=0x0000;TRISF=0b000001;PORTF=0x0000;

while(1){

Delay_ms(5000); // LONG DELAY IMPAIRS SWITCH OPERATIONPORTB=~PORTB; // LED FLASHINGif (Button(&PORTF, 0, 1, 1)) // Switch at PORTF Bit 0start = 1;if (start&&Button(&PORTF, 0, 1, 0)) // Switch at PORTF Bit 0{

start=0;PORTF.F1=PORTF.F1^1; // Toggles PORTF Bit 1

}}

}

Key DEBOUNCING – 4 (SWITCH5B) void main (){ int start=0;T2CON=0b1000000000001000; // Enable Timer 2/3, Prescaler =1IEC0=0x0080; // Enable Interrupt for Timer 3 PR2=0xE100; // (PR3PR2)BASE16 = (100,000,000)BASE10PR3=0x05F5;ADPCFG = 0xFFFF;TRISB=0b111111101;PORTB=0x0000;TRISF=0b000001;PORTF=0x0000;while(1) { if (Button(&PORTF, 0, 1, 1)) // Switch at PORTF Bit 0 start = 1; if (start&&Button(&PORTF, 0, 1, 0)) // Switch at PORTF Bit 0 { start=0; PORTF.F1=PORTF.F1^1; // Toggles PORTF Bit 1 } }} void interrupt_T2() org 0x000022{ PORTB=PORTB^0x02; IFS0=0x0000;}

UART1U1MODE = 0x8400;

UART1

unsigned char uc1, rx1;

void main() { ADPCFG=0xFFFF; // Starts UART Uart1_Init(19200); // U1MODE = 0x8400; // This instruction required if using alternate pinout delay_ms(200); TRISB=0x0000; PORTB=0xFFFF; Uart1_Write_Char('a'); while(1) { if (Uart1_Data_Ready()) { rx1 = Uart1_Read_Char(); Uart1_Write_Char(++rx1); PORTB=~PORTB; } } }//~!

UART2B-EEL

unsigned adcRes; char txt[6];

void main() { int i; PORTB = 0x0000; TRISB.F1 = 1; // set pin as input - needed for ADC to work

Uart1_Init(19200);

while (1) { adcRes = Adc_Read(1); // Read ADC channel 1 WordToStr(adcRes, txt); // Convert ADC value to text i=0; while (txt[i]) { Uart1_Write_Char(txt[i]); // Send text to UART one character at a time i=i+1; Delay_ms(1000); } } }//~!

UART2B-CPE

unsigned adcRes; char txt[6];

void Uart1_Write_Text(char *txt_to_wr) { while (*txt_to_wr) Uart1_Write_Char(*(txt_to_wr++)); }

void main() {

PORTB = 0x0000; TRISB.F1 = 1; // set pin as input - needed for ADC to work Uart1_Init(19200);

while (1) { adcRes = Adc_Read(1); WordToStr(adcRes, txt); Uart1_Write_Text(txt); Delay_ms(1000); } }//~!

The Family reference manual shows the connection in red, it does not show the direct connection to VREF-

Sampling Time

BitsMax Sampling Rate

(Hz)TAD

Required Time for a Sample

10 1,000,000.00 84 ns 12 TAD12 200,000.00 334 ns 14 TAD

To minimize the effects of pin leakage currents on the accuracy of the A/Dconverter, the maximum recommended source impedance, RS, is 5 kΩ for the conversion rates of up to 500 ksps and a maximum of 500Ω for conversion rates of up to 1 Msps


Recommended