每次在寫Microchip的程式時,
總要查一下變數的資料型態,因此就乾脆貼在文章內
C18 Data Type
TYPE                SIZE     RANGE 
char(1,2)            8 bits  -128 127 
signed char          8 bits  -128 127 
unsigned char        8 bits  0 255 
int                 16 bits  -32,768 32,767 
unsigned int        16 bits  0 65,535 
short               16 bits  -32,768 32,767 
unsigned short      16 bits  0 65,535 
short long          24 bits  -8,388,608 8,388,607 
unsigned short long 24 bits  0 16,777,215 
long                32 bits  -2,147,483,648 2,147,483,647 
unsigned long       32 bits  0 4,294,967,295 

float               32 bits  1.17549435 e-38 to 6.80564693 e+38
double
              32 bits  1.17549435 e-38 to 6.80564693 e+38

fishark 發表在 痞客邦 留言(0) 人氣()

Today, I try the fuction of CPUDIV in PIC18F MCU.
MCU have the faster speed in CPUDIV = OSC1 than CPUDIV = OSC4_PLL6.
今天我測試了PIC18系列MCU的CPUDIV的功能,
結果系統在CPUDIV = OSC1的運作速度比OSC4_PLL6快,
The following data is expressed in pic18 config:
PLL // Prescaler Selection bits:
PLLDIV = 1 // No prescale (4 MHz oscillator input drives PLL directly)
PLLDIV = 2 // Divide by 2 (8 MHz oscillator input)
PLLDIV = 3 // Divide by 3 (12 MHz oscillator input)
PLLDIV = 4 // Divide by 4 (16 MHz oscillator input)
PLLDIV = 5 // Divide by 5 (20 MHz oscillator input)
PLLDIV = 6 // Divide by 6 (24 MHz oscillator input)
PLLDIV = 10 // Divide by 10 (40 MHz oscillator input)
PLLDIV = 12 // Divide by 12 (48 MHz oscillator input)

// CPU System Clock Postscaler:
CPUDIV = OSC1_PLL2 // [OSC1/OSC2 Src: /1][96 MHz PLL Src: /2]
CPUDIV = OSC2_PLL3 // [OSC1/OSC2 Src: /2][96 MHz PLL Src: /3]
CPUDIV = OSC3_PLL4 // [OSC1/OSC2 Src: /3][96 MHz PLL Src: /4]
CPUDIV = OSC4_PLL6 // [OSC1/OSC2 Src: /4][96 MHz PLL Src: /6]
Cont. ~~~~~

fishark 發表在 痞客邦 留言(0) 人氣()

在使用C語言做運算處理時,難免會與用到浮點數(Float)運算,
但是如果要將浮點數的數值做資料傳輸,如SPI,UART或USB時,就會遇到困難,
因為通常傳輸的數據是使用Byte的形式,
Microchip C語言的浮點數占了4個Byte的空間,

fishark 發表在 痞客邦 留言(3) 人氣()

Microchip 提供軟體與硬體的SPI通訊程式庫,
當有兩個MCP要使用SPI通訊時,
一個要當Master, 而另一個要成為Slave,
SPI通訊需要4條訊號線, 分別是SDI, SDO, SCK, CS,

fishark 發表在 痞客邦 留言(2) 人氣()

這篇文章是介紹如何使用PIC18系列硬體I2C讀寫外接EEPROM 24LC64,
一般來說PIC18系列的晶片通常有內建的EEPROM, 不過通常容量不大,
如果需要儲存較大容量的資料時, 就需要使用外接的EEPROM,
待續 ~~~

fishark 發表在 痞客邦 留言(0) 人氣()


StopWatch是Microchip MPLAB開發環境提供的一個小工具,
可以利用軟體的模擬, 來知道一段程式碼所需要花的執行時間,
通常是利用中斷點(breakpoint)來定義所需要量測的程式碼範圍,
 

fishark 發表在 痞客邦 留言(1) 人氣()

在使用mplab寫Microchip的程式時,
我想把一些程式碼從範例程式copy & paste到自己的程式碼是很常見的事情,
不過有時候MPLAB編譯這種copy & paste的.c或.asm檔會發生問題,
雖然這種現象不常見,

fishark 發表在 痞客邦 留言(0) 人氣()

這是在網路上收集到關於Microchip MCU的Bootloader相關資料:
Free from Microchip:
1. Microchip AN851: PIC16F/18F bootloader via serial
2. Microchip AN247: PIC18F CAN MCU bootloader via CAN bus
3. Microchip AN1094: PIC24/dsPIC30/dsPIC33 bootloader
4. Microchip TCP/IP Stack: Internet bootloader for PIC18J Ethernet MCU
5. Microchip PICkit 2: USB HID Bootloader
6. Microchip USB Firmware framerwork: USB bootloader using generic USB driver and HID 

fishark 發表在 痞客邦 留言(0) 人氣()


一般MCU當Master使用I2C與Slave端的設備或IC溝通有兩種作法,
1. 硬體式: MCU本身已經有硬體I2C的架構, 在Microchip的MSSP包含SPI與I2C, 只需要作一些暫存器設定, 然後將資料丟到I2C buffer便可使用.
2. 軟體式: MCU本身沒有硬體式I2C的架構, 或是硬體式I2C的腳位不敷使用, 使用其他兩個Digital pin腳充當SDA與SCL, 不過I2C的Protocol是用軟體來控制的,
目前在c18中有提供software I2C protocol, 一般在C:\MCC18\src\pmc_common\SW_I2C

fishark 發表在 痞客邦 留言(0) 人氣()

在使用PIC18系列是常使用的就是c18的compiler,
我們要使用的函數, 如PWM可以自己寫, 或是call c18已經寫好的函數如OpenPWM(), ClosePWM()
我們可以進一步去看裡面的程式碼, 會發現會有EPWM_V14或EPWM_V14_1的版本定義, 如下面的程式碼:
#elif defined (EPWM_V14) || defined (EPWM_V14_1)
void OpenEPWM1( unsigned char period, unsigned char timer_source )
{
  ECCP1CON=0b00001100;   //ccpxm3:ccpxm0 11xx=pwm mode
  //configure timer source for CCP
  CCPTMRS0 &= 0b11111000;
  CCPTMRS0 |= ((timer_source&0b01110000)>>4);  
 
  if( (CCPTMRS0&0x07)==0x00)
  {
  T2CONbits.TMR2ON = 0;  // STOP TIMERx registers to POR state
  PR2 = period;          // Set period
  T2CONbits.TMR2ON = 1;  // Turn on PWMx
  }

fishark 發表在 痞客邦 留言(0) 人氣()


Microchip單晶片的USB功能主要有三種方式:
1. HID
2. CDC
3. mpusbapi.dll

fishark 發表在 痞客邦 留言(0) 人氣()

最近在寫PID的控制,需要用到一些乘除的運算,
在Microchip MCU中的乘,例如說a*100,其實是a加100次,
會多很多程式碼,還要擔心是不是會超出變數的容量,
例如a是宣告unsigned char也就是0~255,

fishark 發表在 痞客邦 留言(0) 人氣()

1 2
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。