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


Browsing this Thread:   1 Anonymous Users






Re: 請問18F4550的USB interrupt如何使用??
#2
管理員
管理員


查看用戶資訊
Hi,

PIC18F4550 中 USB Module 的動作與其他的周邊一樣, 都會在中斷條件成立時設定相對應旗標 ( PIR2 的 USBIF 會被設定 ,
此時若 PIE2 的 USB IE 位元被設為 1 , 則 CPU 會被中斷 )

當然 , 也能用 Polling 的方式來達成 USB Process , 所以我們的
Firmware Driver 使用此中方式以避免與 user 程式在共用資源
時可能遇到的衝突 ! 因為中斷與 user 程式都有可能存取相同的資源 , 例如 USB.

如果一定要試 Interrupt 的方式 , 可以自己改一下. 除了要在 0x0008 or 0x0018 加入進去 USBTasks ( ) 所處理的工作外 , 還要注意 UIE 中有哪些來源要能中斷 CPU , 然後中斷程式中檢查並 " 清除" UIR 暫存器相對應的位元 ; 最後要清除 PIR2 裡的 USBIF.

現在我們測試的是用非中斷方式寫的程式 , 尚未使用 Interrupt 處理 USB SIE 的 Event ! 如果你完成使用中斷方式的 Firmware Driver , 歡迎與大家一起分享 :)

發表於: 2005/9/27 15:44
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問18F4550的USB interrupt如何使用??
#1
新會員
新會員


查看用戶資訊
Dear All,
USB Democode裡面我加入了Timer interrupt的程式
結果發現如果USB在通訊的時候,發生中斷的話,PC端會秀出無法識別的裝置,仔細一看,PIR2有USBIF這個bit,那代表usb也可以用interrupt的方式來做囉??
請問有哪位大大知道USB interrupt如何使用??




;-------------------------------------------------------------------
void main(void)
{
InitializeSystem();
TimerInital();
OpenLCD( ) ;
putrsLCD("PIC18F4550 Test") ;
while(1)
{

USBTasks(); // USB Tasks
ProcessIO(); // See user\user.c & .h


}//end while
}//end main
;-------------------------------------------------------------------
#pragma code isrhighcode = 0x0008

void isr_high_direct(void)
{
_asm //begin in-line assembly

goto isr_high //go to isr_high function
_endasm //end in-line assembly
}

#pragma code
#pragma interrupt isr_high
void isr_high(void)
{
INTCONbits.TMR0IF=0;
WriteTimer0(0x16);
if (TCOUNT>=100)
{
TCOUNT = 0;
mLED_4_Toggle();
}
else
TCOUNT = TCOUNT+1;
TCOUNT++;
}
#pragma code

;-------------------------------------------------------------------
void TimerInital(void)
{

TCOUNT = 0;
RCONbits.IPEN=1;

INTCON2bits.TMR0IP=1;
WriteTimer0(0x16);
OpenTimer0(TIMER_INT_ON & T0_8BIT & T0_SOURCE_INT & T0_PS_1_256);
INTCONbits.PEIE=1;
INTCONbits.GIE=1;

;-------------------------------------------------------------------

發表於: 2005/9/23 11:35
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

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... ]

教育訓練中心

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