• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::

論壇索引


Board index » All Posts




Re: 請問所有pic16系列的都可用c語言寫嗎
版主
版主


Hi-Tech PICC
CCS
IAR

都有人用在 PIC16系列

發表於: 2005/9/13 17:49
頂部


Re: 關於 C18 EEPROM範例 的一個小問題
版主
版主


因為程式前面有直接定義 EEPROM 燒錄資料,所以要特別指定 EEPROM 實際 ICSP 燒錄的位址,LKR 檔就必須加入 EEPROM 的節區位址。
// *****     Define byte data into the Internal EEPROM    *****
//
#pragma romdata EEDATA
rom unsigned char EE_Dara1[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
rom unsigned char EE_Data2[] = {0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
rom unsigned char EE_Data3[] = {'H','i','-','T','e','c','h',0x00,};
rom unsigned int EE_Data4 0xAAA0,EEdata 0xAAA2;
rom unsigned long EE_Data6 0x61626364;
#pragma romdata


EEPROM 節區是指到這個位址的:
CODEPAGE NAME=eedata START=0xF00000 END=0xF000FF PROTECTED

發表於: 2005/9/13 17:44
頂部


Re: IC轉換問題,16C72A轉16F72,16C924轉16C925
版主
版主


16C72A 轉 16F72:
舊的HEX一樣可以用,建議還是重新編譯後在燒。

16C924 轉 16C925:
ADC 暫存器不一樣,8-bit vs 10-bit 還是要小改一下程式。


發表於: 2005/9/13 17:29
頂部


IC轉換問題,16C72A轉16F72,16C924轉16C925
高級會員
高級會員



16C72A 轉 16F72
16C924 轉 16C925

我去官方網站搜尋上面是這樣建議的
去看看spec. pin to pin
所有的暫存器位置也一樣

是不是我拿舊的 .HEX 燒錄就可以了,或是我必須拿
原程式再組譯產生的 .HEX 才可以

麻煩一下,看有沒有其他建議

發表於: 2005/9/13 17:17
頂部


Re: PIC18F452 Timer0要如何使用???
中級會員
中級會員


謝謝幫忙~~~
這個程式是OK的~~~
趕快來研究一下~~~
再次感謝~~~

發表於: 2005/9/13 15:55
頂部


Re: PIC18F452 Timer0要如何使用???
資深會員
資深會員


兩年前剛開始接觸pic寫的
當時測試是可以用
加減看看吧...

;測試TIMER溢位中斷
;系統CLK 16MHz Fosc 16M 4M
;頻率為 4M 256(預除器為1:256) = 15625 Hz
;設定每0.01秒產生溢位中斷
;每0.1秒反相輸出PORTB,2

        
LIST P=18F452 R=DEC    
        
#INCLUDE <P18F452.INC>

CNT RES 1

;使用者重置向量
          ORG 0H                        
;程式開始位址 00H
          
GOTO START       

    ORG  18H
    
GOTO  TEST_INT0

;主程式
START  
    
        CLRF TMR0L
        CLRF LATB
        CLRF PORTB
        CLRF TRISB
    
        MOVLW 47H
        MOVWF T0CON
        MOVLW 0E0H
        MOVWF  INTCON
        BSF T0CON
,TMR0ON
TTT
        
GOTO  TTT
    

TEST_INT0
         BCF INTCON
,TMR0IF

           MOVLW 256
-156
           MOVWF TMR0L
           DECFSZ CNT
           RETFIE
           MOVLW 10
           MOVWF CNT
           BTG  PORTB
,2
             RETFIE
         
EXIT
          
END

發表於: 2005/9/13 15:13
頂部


PIC18F452 Timer0要如何使用???
中級會員
中級會員


請問一下~~~
我在範例程式找不到Timer0的範例~~~
自己又試不出來~~~
不知有沒有人可以幫忙一下~~~
給個簡單的範例(組合語言)~~~
我自己試的結果是~~~
TMR0H,TMR0L的值會跑~~~
但是卻不會產生中斷~~~
先謝了~~~

發表於: 2005/9/13 15:00
頂部


請問我可以在程式執行中開關rs232的interrupt嗎?
新會員
新會員


我是用16F877A的chip,用CCS的C寫的
要讓rs232的interrupt enable
我是用enable_interrupts(int_rda);// enable USART interrupt
enable_interrupts(global);// enable ALL interrupt

在程式中我可以用disable_interrupts(int_rda)讓它disable,
但我再次用enable_interrupts(int_rda)時卻無法再讓它enable,請問這是什麼原因呢?

另外我想問一下enable_interrupts(global);// enable ALL interrupt
這個指令有什麼作用呢?
謝謝

發表於: 2005/9/13 11:00
頂部


請教一下關於spi
高級會員
高級會員


請教一下

在我的程式碼裡有二段關於spi傳輸的程式

第一段跑起來是OK的
CS_DPMA 0;
    
CS_DPMB 0;
    for (
05i++)
    {
        
WriteSPI(0x11);
        
WriteSPI(0x20);
    }
    
CS_DPMA 1;
    
CS_DPMB 1;
    
CS_DPMA 0;
    
CS_DPMB 0;
    for (
05i++)
    {
        
WriteSPI(0x12);
        
WriteSPI(0x4B);
    }
    
CS_DPMA 1;
    
CS_DPMB 1;
可以正常執行
不過另一段
    
for (02i++)
    {
        if (
dpm_group == 0)
            
CS_DPMA 0;
        else if (
dpm_group == 1)
            
CS_DPMB 0;
        for (
4<= 0k--)
        {
            if (
!= dpm_ch)
            {
                
WriteSPI(0x00);
                
WriteSPI(0x00);
            }
            else
            {
                if (
== 0)
                {
                    
WriteSPI(0x11);
                    
WriteSPI(dpm_level2);
                }
                else
                {
                    
WriteSPI(0x12);
                    
WriteSPI(dpm_level);
                }
            }
        }
        if (
dpm_group == 0)
            
CS_DPMA 1;
        else if (
dpm_group == 1)
            
CS_DPMB 1;
    }

就老是有問題
能否請高手幫我看看呢

謝謝

發表於: 2005/9/13 10:37
頂部


請問rs232的interrupt和寫入eeprom間有衝突?
新會員
新會員


我是用16F877A的chip,用CCS的C寫的
用以下是我的rs232的isr
#int_rda
void serial_isr(){
   
char c;
   if((
c=getc())!='r' && len<21)
   {
      
string[len]=c;
      
len=len+1;
   }
   else
   {
      
len=0;
   }
}


若我在主程式中埶行eeprom的寫入指令後
void ParaSave
()
{

  
UCHAR Wdata;

  
char EX_ROM_ADD=32;
  
char i,j,SaveStatus[]="Saving...";

  
LCM_ClearDispaly();
  
LCM_Gotoxy(1,1);
  
LCM_Puts(SaveStatus);

  for(
i=0;i<=ParaNo;i++)
   {
     
EX_ROM_ADD=EX_ROM_ADD+(i);
     
Wdata=Para[i];
     
write_EEPROM(EX_ROM_ADD+i,Wdata);
     
delay_cycles);
   }
}


當埶行完eeprom的寫入後
結果rs232的isr就沒有作用了…
請問這是為什麼呢?
請各位大大們幫忙囉~ 謝謝

發表於: 2005/9/13 10:27
頂部



« 1 ... 6936 6937 6938 (6939) 6940 6941 6942 ... 7522 »



:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------