TI E2E エンジニア・コミュニティ (Beta)
TI E2E エンジニア・コミュニティへようこそ! 仲間のエンジニア、TI のエンジニア、および他の専門家と自由に交流し、質問、知識の共有、アイデアの探索、問題の解決に役立ててください。
詳細検索オプション

タブの使い方

0 評価
回答 (確認) この投稿: 0 ベスト・アンサー | 7 回答 | 3 メール通知受信者

上位 10 人の投稿者
男性
31 投稿
Distributor
Massa 投稿日 Mar 3, 2009 9:50 PM

タグではなく、タブの質問です(笑)。

投稿するときにソースを貼り付けようとすると、タブが表示されないため、インデントがずれてしまいます。

4文字タブとか8文字タブが設定できるのでしょうか?

それとも別にエディタのほうで、タブをスペースに置き換えなければいけないのでしょうか?

お教えください。よろしくお願いします。

 

 

すべての回答

上位 10 人の投稿者
122 投稿
Texas Instruments Employee
Administrator 回答 Mar 4, 2009 12:31 AM

Massaさま

貼り付けはどのようにされてますでしょうか?

投稿画面の上に並ぶメニュの中のをクリックしていただいて貼り付け画面をだし、
そこにペーストするとインデントも反映されると思うのですがいかがでしょうか?

 

上位 10 人の投稿者
男性
31 投稿
Distributor
Massa 回答 Mar 4, 2009 1:35 AM

貼り付けは、IARのエディタかCCEのエディタからコピーアンドペーストしています。

すると、タブがスペースに置き換えられてしまい、2タブの位置が8文字目でなく3文字目になってしまいます。

そのため、スペースでとったインデントが後ろの方に行ってしまいタブでとったインデントは前にきてしまいます。

また、フォントがプロポーショナルのため後ろに書いたコメントの位置が合いません。固定幅フォントの設定はできないのでしょうか。

例を次にペーストします。最初はタブで、2番目はスペースでインデントを作ってあるので、4文字タブ設定したエディタ上ではまったく同じに見えますが、下記のようにごちゃごちゃしてしまいます。まだスペースで置き換えたほうが見やすいですが。

また、// で表示されるコメントもエディタではすべて頭をあわせたものですが、予測できない位置に表示されています。

行の後のコメントは、アセンブラでは必須になりますので、かなり見にくくなってしまいます。最後に、IARのリストの例を貼付します。ニューモニックを追うのも困難になっていることがおわかりいただけると思います。

なんとかならないでしょうか? よろしくお願いします。

・タブによるインデント

void initADC(void)
{
 int  i;
 
 ADC12CTL0 = ADC12ON + REFON + REF2_5V + SHT0_6;
           // Setup ADC12, ref., sampling time
 ADC12CTL1 = SHP;      // サンプリングタイマー
    ADC12MCTL0 = INCH_10 + SREF_1;          // チャネル A10(温度), Vref+
    ADC12IE = 0x01;                         // ADC12IFG.0の割り込み許可
 for (i = 0; i < 0x3600; i++)
   ;                  // 少し待ってやる
 ADC12CTL0 |= ENC;                       // 変換を許可

}

・スペースによるインデント

void initADC(void)
{
    int  i;
 
    ADC12CTL0 = ADC12ON + REFON + REF2_5V + SHT0_6;
                                            // Setup ADC12, ref., sampling time
    ADC12CTL1 = SHP;                        // サンプリングタイマー
    ADC12MCTL0 = INCH_10 + SREF_1;          // チャネル A10(温度), Vref+
    ADC12IE = 0x01;                         // ADC12IFG.0の割り込み許可
    for (i = 0; i < 0x3600; i++)
           ;                                // 少し待ってやる
    ADC12CTL0 |= ENC;                       // 変換を許可

}

・IARでのリスト

     27         
     28            while(1)  {
     29             for(x = 50000; x > 0; x--, j++);
   \                     ??main_0:
   \   000036   3F53         ADD.W   #0xffff, R15
   \   000038   1E53         ADD.W   #0x1, R14
   \                     ??main_1:
   \   00003A   0F93         CMP.W   #0x0, R15
   \   00003C   FC23         JNE     ??main_0
     30             P1OUT ^= 0x04;
   \   00003E   E2E22100     XOR.B   #0x4, &0x21
     31             func(j);
   \   000042   0C4E         MOV.W   R14, R12
   \   000044   B012....     CALL    #func
   \                     ??main_2:
   \   000048   3F4050C3     MOV.W   #0xc350, R15
   \   00004C   F63F         JMP     ??main_1
   \   00004E                REQUIRE WDTCTL
   \   00004E                REQUIRE P1OUT
   \   00004E                REQUIRE P1DIR
     32            }
     33           
     34          }

上位 10 人の投稿者
男性
20 投稿
Texas Instruments Employee

massa様

以下のURLをご参考に、HTMLを直接編集されてはいかがでしょうか。

http://jmblog.jp/archives/80

当コミュニティでは、記事を投稿する際に表示されるエディタ欄の枠の上にある"HTML"ボタンをクリックすると

HTMLを直接入力できます。

 

下記はCCEのエディタからCTRL+Cでコピーしたソースを<pre>タグと<code>タグで囲まれた領域に

CTRL+Vしてみた例です。

 


void main(void)
{
volatile unsigned int i;

WDTCTL = WDTPW + WDTHOLD; // Stop WDT

// initialize uart
P5SEL = 0xC0; // P5.6,7 = USCI_A1 TXD/RXD
UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
UCA1CTL1 |= UCSSEL_2; // SMCLK
UCA1BR0 = 9; // 1MHz 115200 (see User's Guide)
UCA1BR1 = 0; // 1MHz 115200
UCA1MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
UCA1IE |= UCRXIE; // Enable USCI_A0 RX interrupt

 


上位 10 人の投稿者
男性
31 投稿
Distributor
Massa 回答 Mar 4, 2009 8:46 AM

宮島様

レス、ありがとうございます。

私はメーラにHTMLメール拒否を設定するくらいのHTML嫌いなのですが、これしかなければやるっきゃないですね。

今度タグを入れて試してみます。

で、タブの数は4とか8とか設定できるのですか。

これからもよろしく。

 

上位 10 人の投稿者
男性
20 投稿
Texas Instruments Employee

Massa様

 

改めて、単純なソースコードで実験してみます。

#元ソースを添付いたしました。

 


#include

int main(void)
{
// comment1
printf("Hello World!\n"); // comment2
printf("Hello World!\n"); // comment3

return 0;
}

 


行頭のインデントはタブ1つ、6行目のコメントの前にはタブ2つ、7行目のコメントの前にはスペース7つを挿入してあります。

タブ4の場合に6行目と7行目のコメントの開始位置が揃って表示されますが、

書き込みを投稿して表示した際には、タブ8として表示されるようです。

 

ソースコードのインデントの崩れが気になる場合は、

ソースコードを表示したウィンドウをスクリーンショットして添付するなどしてみてはいかがでしょうか。


上位 10 人の投稿者
122 投稿
Texas Instruments Employee

再度失礼いたします。

やはりエディタとは環境が全く違うので互換がうまくいかないようです。

US にも問い合わせてみたのですが、、
やはり word を使うとうまくいくのではということです。
1) 一度ソースを word にはりつけていただいてから
投稿画面で貼り付ける。
2) 最初にご提案したように この投稿を書き込む画面の上に並んでいるメニューのアイコンをクリックし、
word 貼り付け用画面をだしてそこに貼り付けていただく。

再度お試しいただけますでしょうか。

またこれでもうまくいかないようでしたら
最後の手段としては投稿に添付していただくのが一番よいかと思います。

ご面倒をおかけしてすみませんが、どうぞよろしくお願いいたします。

 

上位 10 人の投稿者
男性
31 投稿
Distributor
Massa 回答 Mar 5, 2009 8:29 PM

Administrator様、 MIYAJIMA様

貼付方法の手法の解説、ありがとうございます。

画面の美しさでは、MIYAJIMA様のHTML貼り付けがきれいそうですが、これからいろいろ試してみたいと思います。

丁寧なアドバイス、本当にありがとうございました。

ページ 1/1(8 アイテム) |

本サイトの全てのコンテンツ及び素材は、「現状有姿のまま」提供されております。 日本テキサス・インスツルメンツ株式会社及びその親会社であるTexas Instruments Incorporated (以下、TIと総称します)、並びにTIに当該コンテンツや素材を提供した者は、当該コンテンツ若しくは素材が何らかの目的に適合しているかどうかについて、いかなる表明もいたしませんし、また、当該コンテンツ若しくは素材について、当該コンテンツ若しくは素材に商品性があることの保証、特定の目的に適合していることの保証、TI若しくは当該提供者に何らかの権原が有ることの保証及び当該コンテンツ若しくは素材が第三者の知的財産権を侵害していないことの保証その他、黙示の保証であろうと明示の保証であろうと、いかなる保証も一切いたしません。 TI は、明示のライセンスであろうと、黙示のライセンスであろうと、禁反言によるライセンスであろうと、ライセンスは一切いたしません。 本サイト上にある情報を使用する場合は、別途、第三者もしくはTI から、ライセンスを取得しなければならない場合があります。 本サイト上にあるコンテンツには、特別な使用上の注意事項もしくは制限事項が含まれているか、又はそれらの注意事項もしくは制限事項に従う限りにおいて使用できる場合があります。 本サイト上の全ての投稿及びコンテンツの使用は、本サイトの「使用条件」に従ってなされるものとし、当該コンテンツを使用する第三者は本サイトの「使用条件」の制限、注意事項に拘束され、且つそれらに従わなければならないものとします。 TI 及びコンテンツ、素材等を提供した者は、いつでも、コンテンツ、素材、製品、プログラム及びサービスを訂正、削除、修正、増加、改良その他の変更をし、かつ、いかなるコンテンツ、製品、プログラム若しくはサービスも、通告無しに移動、中止する権利を留保します。