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


Browsing this Thread:   1 Anonymous Users






Re: 請問這程式碼那邊有問題(中斷+LED切換+LCD顯示)
#8
版主
版主


查看用戶資訊
瞬間突波現象應該是軟體動到這隻腳,也許是對的,也許是不小心改到的。總之要知道軟提的執行的流程才可以知道這個瞬間突波是否正確。

發表於: 2007/3/27 15:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問這程式碼那邊有問題(中斷+LED切換+LCD顯示)
#7
初級會員
初級會員


查看用戶資訊
請問板主
如果我硬是要用RB7來做OUTPUT PIN
可是 我發覺 輸出LOW時
瞬間會發生突波哩 剛好跟中斷時間一致....

我是每一次中斷發生 更新一次LCD螢幕
EX
一秒更新一次LCD
1~10秒 迴圈
只有第一秒OUTPUT PIN才為HIGH
其餘9秒皆為LOW

我接示波器看的 把OUTPUT PIN外接高亮度LED
也可感覺出來

RD0 RD2似乎也是 ......

請問我有發生什麼問題嗎 ?!

都剛好 可於LCD的電路圖上看到相關接腳哩

謝謝
////////////
我用示波器測量時
並無用到RB7接腳來做I/O PIN

設定TRISBbits.TRISB7 = 0 ;
(其實應該是多餘的 RB預設值就是0X0000)

就會有瞬間突波發生哩

發表於: 2007/3/25 20:35
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問這程式碼那邊有問題(中斷+LED切換+LCD顯示)
#6
版主
版主


查看用戶資訊
因為 Init LCD 只做一次而已,你把 RB7改為輸入後又沒有改回輸入還給人家,當然別人就送不出去 RB7 的控制信號。

發表於: 2007/3/23 14:33
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問這程式碼那邊有問題(中斷+LED切換+LCD顯示)
#5
初級會員
初級會員


查看用戶資訊
SORRY 我找到了
LCD模組 確實用RB7做致能開關

所以表示 RB7這個暫存器 我沒辦法用?!

謝謝你們給新手的指導 很感謝

****************************
我又發覺問題了 = =

我是不是只要在SHOW_LCD的FUNCTION內
一開始就把RB7設成OUTPUT就好了

當換到SHOW_LED FUNCTION
再設定TRISB=0Xffff

這樣做法 其實是OK的!?
這些IO腳定義 如果不需要變動 是否就直接寫於MAIN
不用在FUNCTION內設定 以免重複呼叫FUNCTION
導致 多餘的重複設定動作?!

謝謝

發表於: 2007/3/22 20:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問這程式碼那邊有問題(中斷+LED切換+LCD顯示)
#4
初級會員
初級會員


查看用戶資訊
謝謝樓上兩位的回答喔
其實我不是很懂ADPCFG=0XFFFF這行在幹麻
我看書上 LED電路圖上(P6-7)也確實沒RB7

可是看(P5-20) 寫著RB0~RB8可以做雙向輸出入阿
@@我找不到哪個圖有說明RB7的接線
EN是?

另外問一下 我想利用IO輸出訊號 至外接LED上
八顆LED 我全給RB去做
可是很奇怪 RB8在訊號0的時候 還是會發生閃爍
極短暫的閃爍 (跟中斷時間一致)
就是單單這顆.......電阻有接了
同學跟我說 要外接BJT ?

以下是我的設定
ADPCFG = 0xffff ;
//PORTB = 0xffff ; //其實我不知道MASK這行是啥原因
TRISB = 0x0000 ; //全部設定為OUTPUT
LATB = 0xff00 ; //初始電壓接設為LOW

(P6-3)圖 IO腳暫存器表格 反白的地方是?!
像我TRISB = 0x0000 ; 其實9~15bit是反白的區塊
我設定它 會有影響嗎

很謝謝!!

發表於: 2007/3/22 20:03
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問這程式碼那邊有問題(中斷+LED切換+LCD顯示)
#3
版主
版主


查看用戶資訊
樓上的找出你的問題點了;
看電路圖及LCD的程式,PORTB,7 (RB7) 是用來控制 LCD Module 的 Enable pin。I/O 重新規劃時要注意別把人的功能改掉了。

#define LCD_E LATBbits.LATB7
#define LCD_E_MODE ADPCFGbits.PCFG7 // Set RB7 as digital I/O

發表於: 2007/3/22 11:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問這程式碼那邊有問題(中斷+LED切換+LCD顯示)
#2
新會員
新會員


查看用戶資訊
你好

問題在void Show_LED(void)副程式中!!

你應該要把TRISB = 0xffff 改為TRISB = 0xff7f ;
電路圖上RB7是EN的接腳,所以應該設為Output
程式我測試過了沒有問題,有問題再PO上來吧

Best Regards


發表於: 2007/3/21 23:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問這程式碼那邊有問題(中斷+LED切換+LCD顯示)
#1
初級會員
初級會員


查看用戶資訊
我是看了曾百由的範例
把中斷 IO輸出入 LCD顯示這三範例寫在一起
但我把IO輸出入這FUNCTION加進來 執行LCD卻無動作了
請問問題出在哪呢? 謝謝
似乎中斷 沒我想像中的好寫 @@

#define __dsPIC30F4011__

#include <p30F4011.h>
#include "C30EVM_LCD.h"
#include <timer.h>

#define FCY 7372800 * 2

_FOSC(CSW_FSCM_OFF & XT_PLL8);
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_EN);
_FGS(CODE_PROT_OFF);

const char My_String1[]="Stockton Test" ;
char My_String2[]=" TIME : 00:00 " ;

void Show_Time(void) ;
void Show_LED(void);

unsigned char Minute = 0 ;
unsigned char Second = 0 ;
unsigned int miliSec = 0 ;

union {
unsigned char ByteAccess ;
struct {
unsigned Bit0: 1 ;
unsigned Bit1: 1 ;
unsigned Bit2: 1 ;
unsigned unused : 5 ;
} ;
} SystemFlag ;


#define OneSecond SystemFlag.Bit0
#define LED7 LATBbits.LATB4
#define LED8 LATBbits.LATB5
#define DIR_LED7 TRISBbits.TRISB4
#define DIR_LED8 TRISBbits.TRISB5
#define OUTPUT 0

int LED_counter=0;

void _ISR _T1Interrupt(void)
{

miliSec += 1 ;

if (miliSec == 1000)
{
OneSecond = 1 ;
miliSec = 0 ;

}
IFS0bits.T1IF = 0 ;

}

int main( void )
{

OpenLCD( ) ;

setcurLCD(0,0) ;
putrsLCD( My_String1 ) ;

setcurLCD(0,1) ;
putrsLCD( My_String2 ) ;

ConfigIntTimer1( T1_INT_PRIOR_7 & T1_INT_ON ) ;

OpenTimer1( T1_ON & T1_IDLE_STOP & T1_GATE_OFF &
T1_PS_1_1 & T1_SYNC_EXT_OFF & T1_SOURCE_INT ,
(FCY/ 1000) ) ;

OneSecond = 0 ;

while(1)
{
if ( OneSecond )
{
Show_Time() ;
Show_LED();
OneSecond = 0 ;

Second += 1 ;

if ( Second == 60 )
{
Second = 0 ;
Minute +=1 ;
if ( Minute == 60 )
Minute = 0 ;
}



}
}
}

/***********************************************/
// Subroutine to show Time on LCD

void Show_Time(void)
{

setcurLCD(8,1) ;

put_Num_LCD( Minute ) ;

putcLCD(':') ;

put_Num_LCD( Second ) ;
}
////////////////////////////////////

void Show_LED(void)
{
ADPCFG = 0xffff ;

//PORTB = 0xffff ;
TRISB = 0xffff ;
LATB = 0xffff ;

DIR_LED7 = OUTPUT ;
DIR_LED8 = OUTPUT ;

if(LED_counter%2==0)
{
LED7=0;
LED8=1;
}
else
{
LED7=1;
LED8=0;
}
LED_counter++;

}

發表於: 2007/3/20 19:28
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... ]

教育訓練中心

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