Mplab C30 C Compilers Döküman

Başlatan GreeN, 27 Mayıs 2011, 16:54:45

GreeN

Mplab C30 derleyici help file yada microchip sitesindeki dökümanlar genelde c dili ana konularına değinmiş geçmiş.

ADC , PWM , SPI , EPROM , UART  gibi donanımsal konuları içeren bir referans kaynak bulamadım .
siteyi alt üst ettiğimi düşünüyorum. Ama örneklerden başka bir bilgiye ulaşamadım.

Acaba bahsettiğim konuları içeren bir kaynak varmı? Benim gözümden kaçmış olabilir.

Saygılarımla.
Terörü Lanetliyoruz.

iyildirim

İşlemcilerin datasheet'lerinde yeterli açıklama var.

Ayrıca sitesinde çeşitli app.note ve kaynak kodu açık uygulama örnekleri de var. 
Dökümanlarda verilen örneklerin de neredeyse hepsi C30 için..

App.note ları ve örnek uygulamaları istediğiniz türde uygulama veya donanımsal modüle göre arayabilirsiniz.


Tagli

Derleyiciyi yükleyince içinde dökümanlar da geliyor.

C:\Program Files\Microchip\mplabc30\v3.25\docs (veya her neredeyse...)
Gökçe Tağlıoğlu

GreeN

 :-[  Evet bakmak ile görmek arasındaki fark bu olsa gerek . :)  Teşekkürler.


ADC örnek....
ADPCFG = 0xFFFB; // all PORTB = Digital; RB2 = analog
 ADCON1 = 0x0000; // SAMP bit = 0 ends sampling ...
// and starts converting
 ADCHS = 0x0002; // Connect RB2/AN2 as CH0 input  ..
// in this example RB2/AN2 is the input
 ADCSSL = 0;
 ADCON3 = 0x0002; // Manual Sample, Tad = internal 2 Tcy
 ADCON2 = 0;
 ADCON1bits.ADON = 1; // turn ADC ON
 while (1) // repeat continuously
}
 ADCON1bits.SAMP = 1; // start sampling ...
 DelayNmSec(100); //  for 100 mS
 ADCON1bits.SAMP = 0; // start Converting
while (!ADCON1bits.DONE); // conversion done?
 ADCValue = ADCBUF0; // yes then get ADC value
} // repeat



UART Örnek ;
#define FCY 29100000
#define BAUDRATE 9600
#define BRGVAL ((FCY/BAUDRATE)/16)-1
int main(void)
}
U1MODEbits.STSEL = 0; // 1-stop bit
U1MODEbits.PDSEL = 0; // No Parity, 8-data bits
U1MODEbits.ABAUD = 0; // Autobaud Disabled
U1MODEbits.BRGH = 0; // Low Speed mode
U1BRG = BRGVAL; // BAUD Rate Setting for 9600
U1STAbits.UTXISEL = 0; // Interrupt for every data transfer
IEC0bits.U1TXIE = 1; // Enable UART Transmit interrupt
U1MODEbits.UARTEN = 1; // Enable UART
U1STAbits.UTXEN = 1; // Enable UART Tx
/* wait at least 104 usec (1/9600) before sending first char */
for(i = 0; i < 4160; i++){
 Nop();
{
U1TXREG = 'a'; // Transmit one character
while(1) {}
{
//UART Transmit ISR
void __attribute__((interrupt, no_auto_psv)) _U1TXInterrupt(void)
}
IFS0bits.U1TXIF = 0; // clear TX interrupt flag
U1TXREG = 'a'; // Transmit one character
{


SPI Master Mode örnek
/* Following code snippet shows SPI register configuration for MASTER mode*/
IFS0bits.SPI1IF = 0; //Clear the Interrupt Flag
IEC0bits.SPI1IE = 0; //disable the Interrupt
//SPI1CON1 Register Settings
SPI1CON1bits.DISSCK = 0; //Internal Serial Clock is Enabled.
SPI1CON1bits.DISSDO = 0; //SDO1 pin is controlled by the module.
SPI1CON1bits.MODE16 = 1; //Communication is word-wide (16 bits).
SPI1CON1bits.SMP = 0; //Input Data is sampled at the middle of data 
//output time.
SPI1CON1bits.CKE = 0; //Serial output data changes on transition from
//Idle clock state to active clock state
SPI1CON1bits.CKP = 0; //Idle state for clock is a low level; active
//state is a high level
SPI1CON1bits.MSTEN = 1; //Master Mode Enabled
SPI1STATbits.SPIEN = 1; //Enable SPI Module
SPI1BUF = 0x0000; //Write data to be transmitted
//Interrupt Controller Settings
IFS0bits.SPI1IF = 0; //Clear the Interrupt Flag
IEC0bits.SPI1IE = 1; //Enable the Interrupt


Terörü Lanetliyoruz.