12 Ağustos 2020, 18:25:49

Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H


Mplab C30 C Compilers Döküman

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

GreeN

27 Mayıs 2011, 19:54:45 Son düzenlenme: 28 Mayıs 2011, 13:00:58 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(04160i++){
 
Nop();
{
U1TXREG 'a'// Transmit one character
while(1) {}
{
//UART Transmit ISR
void __attribute__((interruptno_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.