• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   5 Anonymous Users






Re: 請教C18的Rlncf(var)指令問題
#8
版主
版主


查看用戶資訊
Local Variable 在 Defult 下編譯會使用堆疊區的RAM。而這些 Macro 指令 ( Nop( ), Rlncf( )...) 等都是使用 In_Line Assembly 的方式寫的 Marco,根本就無法取得堆疊區的資料所以就亂了。如果要讓Macro 指令能正確對堆疊區的變數正常動作,那Macro的程式就會變的很大,因為要處理堆疊的指標。

發表於: 2007/11/29 10:43
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教C18的Rlncf(var)指令問題
#7
資深會員
資深會員


查看用戶資訊
板主大人
Rlncf(var,1,1);
剛試了一下, 變數var, 設為外部變數時正常可以移位
為什麼改用區域變數後就失靈了呢?

char aa=0b00000001;

void main(void)
{

char bb=0b00000001;

Rlncf(aa,1,1); //會移位
Rlncf(aa,1,1); //會移位
Rlncf(bb,1,1); //不會移位
Rlncf(bb,1,1); //不會移位



}

發表於: 2007/11/28 14:55
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教C18的Rlncf(var)指令問題
#6
新會員
新會員


查看用戶資訊
參照:

Ryang 寫到:
#pragma idata
char var = 0b00000001;

void main(void)
{
while(
1)
{
Rlncf(var,1,1);}


測試過程式,Marco 指令 Rlnc( ) 正常動作無誤,每次都會向左移一個位元。

版主謝謝啦!

發表於: 2007/11/28 13:15
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教C18的Rlncf(var)指令問題
#5
版主
版主


查看用戶資訊
#pragma idata
char var = 0b00000001;

void main(void)
{
while(
1)
{
Rlncf(var,1,1);}


測試過程式,Marco 指令 Rlnc( ) 正常動作無誤,每次都會向左移一個位元。

發表於: 2007/11/28 12:04
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教C18的Rlncf(var)指令問題
#4
資深會員
資深會員


查看用戶資訊
參照:

jony 寫到:
如果要讓00000001右移變成10000000指令要如何寫呢?

C 沒辦法直接做那樣的移位
組語command有的話可用組語,(沒在用組語,有無適用命令,請自行翻書看一下)

如以下範例
void EE_Write (unsigned char EE_Address, unsigned char EE_Data)
{
PIR2bits.EEIF = 0;
EEADR = EE_Address;
EEDATA = EE_Data;
EECON1bits.EEPGD = 0;
EECON1bits.WREN = 1;
INTCONbits.GIE = 0;
_asm //組語開始
MOVLW 0X55
MOVWF EECON2,0
MOVLW 0XAA
MOVWF EECON2,0
BSF EECON1,1,0
_endasm //組語結束
INTCONbits.GIE = 1;
while (!PIR2bits.EEIF);
PIR2bits.EEIF = 0;
EECON1bits.WREN = 0;
}


如是C語言的話, 只能靠程式變通了, 我會這樣寫吧
if(var & 0x1) var=(var>>1)|0x80;
else var=var>>1;

發表於: 2007/11/28 9:46
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教C18的Rlncf(var)指令問題
#3
新會員
新會員


查看用戶資訊
恩..
var=var<<1;
是可以達成我想要的,nicecookie謝謝你囉!
再請教一個相關問題,如果要讓00000001右移變成10000000指令要如何寫呢?

發表於: 2007/11/28 9:10
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請教C18的Rlncf(var)指令問題
#2
資深會員
資深會員


查看用戶資訊
Rlncf 沒用過,不曉得
改寫為
var=var<<1;
應該也可以
參考看看

發表於: 2007/11/27 17:43
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請教C18的Rlncf(var)指令問題
#1
新會員
新會員


查看用戶資訊
#include<p18f452.h>
#include<stdio.h>
#include<stdlib.h>
#include<timers.h>
#pragma config WDT = OFF
#pragma udata
char var;
#pragma udata
void main (void)
{
char var = 0b00000001;
Rlncf(var,1,1);
while (1);
}
請教各位高手:上面是我寫的程式,原本我的想法是讓var的值在程式執行後從00000001變成00000010,但實際執行卻發現var的值還是為00000001,這是為什麼呢?我該如何解決?

發表於: 2007/11/27 14:54
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... ]

教育訓練中心

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