MSP430F2013 ROMが足りない [MSP430]
まずSimさんから指摘があったのですが、delay関数でunit16を使っていましたが、引数によってはオーバーフロー起こしてしまう。との事です。そりゃそうだ!と言う事で、変数の方はlong型に修正します。
こんな感じ
void delay( unsigned long tim )
{
unsigned long i;
volatile int j;
for( i = 0,tim *= 1611; i < tim; i++ )
{
j++;
}
}
ここからが本題。 F2013上でグラフィックLCDを動かしながら電波時計アプリケーションを構築しようと思ってコード打ち込んでいたのですが、駄目です!ROM足りません。 やはり2Kbyteは少な過ぎ。ヘ(´o`)ヘ とほほ・・・・。
ちまちまコードを切ったり、貼ったりしながらサイズを調整しているのですが、うーん、手詰まりです。なんか画期的なブレイクスルーが有れば、、、そんな物有る訳無いか。
例のLCD Simさんの場合 [MSP430]
Simさんが写真を送ってきてくれました。
まあWindows XPを動かすのは難しそうですが、Vistaならいけるかもしれませんね(^^♪。
例のLCDに数字フォントを出力する [MSP430]
じつは前回行ったピクセル表示を応用すれば、文字や数字を自在に表示できます。(但し、プログラミングの段階で表示する文字が決まっている場合。プログラミング段階で不確定な文字に対応するとなると、前にやったようにフリーのフォントを組み込まなければならないので、F2012、F2013では別の方法を取らなければならなくなる。)
写真は、パソコンのペイント系ソフトでお好みのフォントを使って作成したビットマップファイルをCソースに変換し、プロジェクトに組み込んで、プログラムで表示した物です。
プログラミングの例としては、
void main( void )
{
・
・
・
NumFontDisplay( 0, 0, 1 ); /*1*/
NumFontDisplay( 16, 0, 9 ); /*9*/
SlaFontDisplay( 32, 0 ); /*slash*/
NumFontDisplay( 40, 0, 3 ); /*3*/
SlaFontDisplay( 56, 0 ); /*slash*/
NumFontDisplay( 64, 0, 1 ); /*1*/
NumFontDisplay( 80, 0, 8 ); /*8*/
NumFontDisplay( 32, 2, 1 ); /*1*/
NumFontDisplay( 48, 2, 6 ); /*6*/
ColFontDisplay( 64, 2 ); /*colon*/
NumFontDisplay( 72, 2, 1 ); /*1*/
NumFontDisplay( 88, 2, 5 ); /*5*/
・
・
・
}
/************************************************************/
/* 数字FONT表示 */
/************************************************************/
static void NumFontDisplay( int x, int y,int num )
{
int width;
width = (PixWidth - 1) / 8 + 1;
LCD_CS = 0;
MoveTo( x, y );
GPIOSPISendBuffer( (unsigned char *)GraphicBMPTable + (0 * width * 8) + (num * 16), 16 );
MoveTo( x, y + 1 );
GPIOSPISendBuffer( (unsigned char *)GraphicBMPTable + (1 * width * 8) + (num * 16), 16 );
LCD_CS = 1;
}
/************************************************************/
/* コロンFONT表示 */
/************************************************************/
static void ColFontDisplay( int x, int y )
{
int width;
width = (ColonPixWidth - 1) / 8 + 1;
LCD_CS = 0;
MoveTo( x, y );
GPIOSPISendBuffer( (unsigned char *)ColonGraphicBMPTable + (0 * width * 8), 8 );
MoveTo( x, y + 1 );
GPIOSPISendBuffer( (unsigned char *)ColonGraphicBMPTable + (1 * width * 8), 8 );
LCD_CS = 1;
}
/************************************************************/
/* スラッシュFONT表示 */
/************************************************************/
static void SlaFontDisplay( int x, int y )
{
int width;
width = (SlashPixWidth - 1) / 8 + 1;
LCD_CS = 0;
MoveTo( x, y );
GPIOSPISendBuffer( (unsigned char *)SlashGraphicBMPTable + (0 * width * 8), 8 );
MoveTo( x, y + 1 );
GPIOSPISendBuffer( (unsigned char *)SlashGraphicBMPTable + (1 * width * 8), 8 );
LCD_CS = 1;
}
ここまで来れば、あとは例のあれに接続すると、F2012、F2013でも電波時計をやる事ができると言う訳ですね。
いやー、なんか最近パスワールドさんの御陰で、いままでやりたくても出来なかった事が、色々出来るようになって来ました。感謝!。
パスワールドさんで、大変小さいGPSモジュールとソロバンが近くリリースされます。 [MSP430]
http://passworld.co.jp/ForumMSP430/viewtopic.php?p=39&sid=d2ab7f96e4014a04e8f2ca70aafc29db#39
今日は人の成果ばかりだなあ。
電子工作物やっていると、一度は考えた事有るのではないかと思われるGPS。
こーんな小さいモジュールが、もうすぐ手に入るかもしれないんですね。
楽しみ、楽しみ!。
MSP430F2013 + グラフィックLCD ペイントを試す [MSP430]
90式特車
※パスワールドさんからLCDを購入して、試しにペイントをやってみたいが、データが無いという方には、写真のピクセルデータをお渡しできます。
メールに「90式希望」、または「Che希望」、または「90式とChe希望」と書いて送って下さい。
グラフィックの足掛かりとして、まずはペイントを行ってみました。
別途用意したピクセルデータを、下記のプログラムでひたすら転送するだけです。簡単です。
void main( void )
{
int i,width;
WDTCTL = WDTPW + WDTHOLD;
P1DIR |= 0x01;
BCS_CTL1.BIT._RSEL = 15; //16MHzに設定
DCO_CTL.BIT._DCO = 4; //16MHzに設定
InitGPIOSPI();
LCD_CS = 0;
PWDisplayInit();
ClearDisplay();
width = (PixWidth - 1) / 8 + 1;
for( i = 0; i < PixHeight / 8; i++ )
{
MoveTo(0,i);
GPIOSPISendBuffer( (unsigned char *)GraphicBMPTable + (i * width * 8), PixWidth );
}
LCD_CS = 1;
while( 1 ) ;
}
元データは、2値のビットマップデータをパソコンでCソースに置き換えるプログラムを作成し、出力したCソースをプロジェクトに加えます。
マイコンのプログラムより、パソコンの変換プログラムの方が時間が掛かりました(;´д` ) 。
変換元ピクセルデータ(*´ー`)90式特車←表示しきれません
/* ------------------------------------------------------------------------ */ /* 画像データテーブル */ /* designed by hamayan */ /* Copyright (C) 2003 - by hamayan */ /* ------------------------------------------------------------------------ */ /* Graphic Info*/ /* Type:BM*/ /* File size=1086*/ /* Offset=62*/ /* Header size=40*/ /* Width=101*/ /* Height=64*/ /* Planes=1*/ /* Count=1*/ /* Img size=1024*/ /* X pics=0*/ /* Y pics=0*/ /* Color Used=2*/ const long PixWidth = 101; const long PixHeight = 64; /* Pallet Info*/ /* parameter width = 13 height = 64 line = 16*/ const unsigned char GraphicBMPTable[] = { 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xF8,0xB8,0x3C,0x7C,0x4E,0xDF,0x23,0x43,0x89,0x23,0x6E,0x8C,0x91,0xE3,0xCE,0xFC,0xE4,0xF7,0xF1,0xFE,0xF8,0xF9,0xFF,0xFC,0xFF,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFF,0xFF,0x01,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFF,0xFE,0xFE,0xFE,0xFF,0xFD,0xFE,0xFF,0xFE,0xFF,0xFD,0xFB,0xFF,0xEF,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFE,0xFE,0xFC,0xFC,0xF8,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xE0,0xE0,0xF0,0x78,0x5E,0x4F,0xC7,0x87,0x98,0x32,0x70,0x6A,0xCB,0xC2,0xE4,0xF8,0xF9,0x04,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0x3F,0x03,0x03,0x1F,0x3F,0x7F,0x7F,0x7F,0x7F,0x47,0x87,0x87,0x07,0x07,0x07,0x07,0x47,0x17,0x87,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xEF,0xFF,0xFF,0xFF,0xFF,0xBE,0x6F,0xFF,0xFF,0xFE,0xFC,0xF8,0xF0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x89,0x89,0x81,0xB1,0x0A,0x42,0xF4,0xC4,0x39,0x3D,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x10,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0xC0,0xC0,0xA0,0xA0,0xA0,0x30,0x10,0x10,0x00,0x00,0x20,0xE0,0xA0,0x98,0x90,0x9F,0x9F,0xBC,0x23,0xA2,0xF0,0xE3,0xEE,0x6E,0xA0,0x81,0x80,0x96,0x90,0x08,0x11,0xC4,0x98,0x78,0xF8,0x7B,0x7B,0x63,0x67,0xE7,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xFF,0xF6,0xBF,0xFF,0xFF,0xFF,0xDF,0xFE,0xFC,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x40,0x00,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0F,0x0B,0x10,0x00,0x00,0x00,0x00,0x20,0xA0,0xA1,0xBF,0x9F,0x9F,0x9F,0x9F,0x90,0x9F,0x9F,0xDF,0xDF,0xCB,0xC7,0xC1,0x87,0xE7,0x85,0x08,0x4C,0x06,0xAA,0x80,0x9D,0xBA,0xAF,0x26,0x3E,0x16,0xBA,0x38,0xB9,0x7F,0x77,0x77,0x77,0xD7,0xA7,0xEF,0x8F,0xCF,0x2F,0xCF,0x1F,0xDF,0xDF,0xDF,0xBF,0xBF,0xBF,0xBF,0xBF,0x7F,0xFF,0xFF,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0xF0,0x00,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xF8,0xE0,0x00,0x01,0x40,0x00,0x40,0x10,0x00,0x00,0x16,0x04,0x09,0x33,0x1F,0x17,0x06,0x04,0x98,0xD0,0xC0,0x00,0x00,0x40,0x00,0x00,0x00,0x60,0xF0,0xE0,0xC8,0xD7,0xD7,0xE7,0x2F,0x2F,0x1F,0xAF,0xAB,0xBB,0x3F,0xBF,0x5F,0xD5,0x77,0x6F,0x6F,0xF7,0x3F,0x3A,0xFA,0x3B,0x3F,0x9D,0xDD,0xFD,0xFE,0xDF,0xF1,0xEB,0xAE,0x2F,0xCF,0x2C,0x98,0xA0,0x02,0x80,0x04,0x80,0xC1,0x89,0x2B,0x8B,0xC3,0x97,0xEF,0xF7,0xC7,0xC7,0xC9,0x00,0xE1,0xF4,0xE8,0xE3,0xE3,0xF1,0xFF,0xFF,0xFE,0x00,0x00,0x00, 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x0E,0x0C,0x08,0x08,0x20,0x01,0xC0,0x04,0x00,0x40,0x18,0x10,0x20,0x00,0x42,0x87,0x83,0x01,0x40,0x00,0xE0,0x60,0x70,0xF0,0xE3,0xD4,0xFE,0xFA,0xFB,0xF5,0xCD,0x1E,0x7F,0x5F,0x5E,0x5E,0x7E,0x3E,0x3F,0x6F,0xAE,0xFD,0x58,0x81,0x1A,0x99,0x38,0xBC,0xCD,0xCF,0x9C,0x1C,0x37,0x47,0xEF,0xEF,0x63,0x73,0x12,0x04,0x21,0x09,0x01,0x00,0x81,0xA0,0x14,0x54,0x31,0x46,0x02,0x27,0x01,0x05,0x11,0x81,0xC1,0xF9,0xFD,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x09,0x1E,0xB8,0xA8,0xF9,0xF1,0x44,0xC9,0x84,0x8D,0x29,0x50,0x0C,0x28,0x39,0x01,0xBB,0xB3,0x01,0xF1,0x80,0x60,0xE0,0xC0,0x40,0x00,0x20,0x00,0x00,0x00,0x00,0x10,0x40,0x40,0x80,0xF2,0xF0,0xF0,0xF9,0xFB,0xF9,0xF9,0xFC,0xFD,0xFC,0xFC,0xFE,0xFE,0xFE,0xFF,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,0xFE,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x0F,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x06,0x4B,0x17,0x2F,0xBF,0xEF,0x6F,0xFF,0xFF,0xFE,0xFE,0xFE,0xFE,0xFC,0xFD,0xFD,0xF9,0xF8,0xFA,0xF2,0xF0,0xF0,0xF0,0xF0,0xF8,0xF8,0xE8,0x9C,0x7C,0xFC,0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x1F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00, }; /* ***** ** ** ** * **** ******** * ** * ***** ********* */ /* **** ** ** * * * * ********** *********** **** **************** */ /* **** ** **** * ************** ***************** ***************** */ /* ****** * ** ** ***************** ****************************** ***** */ /* **** * * * ******************* ******************* ***************** */ /* ****** * ** * ********************* ************************************** */ /* **** *** * * *********************** *************************************** */ /* ****** * * ************************* ************************************ *** */ /* *** * * ****************************************************************** *** */ /* **** * *** *********************************************************************** */ /* **** * ************** ********************************************************* */ /* *** * ** ** ************* ****** ***************************** ************ */ /* *** *** ** ************* ****** * ****************************** ***** ****** */ /* **** *** *** ************* ***** ******************************************* */ /* ******* ******* ********** ***** * **** ************************ ******** */ /* *** *** ***** ********* ** * ************************** ******** */ /* **** ******** *** ** * * * * *************************** ***** */ /* ** ****** ** ** *** * ********************************** */ /* ** ******* *** ** * * ******************************** */ /* ** * ******** * *** ** * ***** ****************** ** ******* */ /* * * ********* *** ***** * ** * ***** ***************************** */ /* * * ******** **** *** ******** ********************************** *** */ /* *** ** * **** * ****************************** ******** */ /* **** ** ***** ******* **** ***** ** * ********************************* */ /* ******** ***** ****** ********** * * ****************************** */ /* ******** ***** ***** ****** ** ** ****** ****************************** */ /* ******** **** ***** **** * *** ** * **** ****************************** */ /* ********* * ***** ***** ***** ** * *** * **** ************************ */ /* ********* * * ********** ** ********** ******************** */ /* ********* **** * * **** ******* ** * **************** */ /* ********* * ***** * * ***** * * * *** *********** */ /* ********* ****************** ***** * * ***** * ******** ** ****** */ /* ********* * **** ****************** ***** *** ** *********** * ***** */ /* ********** * **** ************ ********* ** **** * ******** ** *** */ /* ********** ** **** ******* ********* ****** **** * ***** * *** */ /* *********** * * * * ********* ** ********** ****** *** * * * *** */ /* *********** * * *** ** * ** * ****** ************ * * * * **** */ /* ************ * *** *** ***** ********* ** **** * * * ** ********* */ /* ************ * * ** * ******* ****** * ****** * * * ***** ********* */ /* ************ *** ****** *** * * * * ******** * ** * *** ******** ********* */ /* ************* * *** * *** ** ** * * * ** ****** *** * * ***************** */ /* ************** *** * *** ********** * * ******* *** ******** */ /* *************** * * ** ************* ********* * ** * * * ********** */ /* ***************** * *** ************* ******** ** * *********** */ /* ************* ** ** ***** ******** ** **** *** ** *** * *********** */ /* * * ***** **** * ****** ** * **** * * * * ********** */ /* * * * * *********** ***** * ** ** ***** * * *********** */ /* * ** * ******** ** * * **** ** ** ************ */ /* * ** * ** ****** **** * * * *************** */ /* * ** * * ********************************* */ /* * * ** * ************************************* */ /* ***** * ** *** * ***************************************** */ /* ** ** * * ** * * ******************************************* */ /* * **** * ** ** * ** * ******************************************* */ /* **** * * **** ** ****************************************** */ /* **** *** ** ** ** ******************************************* */ /* ******** *** ******************************************* */ /* ************* ** ******************************************* */ /* ** ************** ********************************************** */ /* * **************** ************************************************* */ /* * * ******************* ********************************************** */ /* ************************ ******************************************** */ /* * ********************** **************************** ************** */ /* * ** ********************* ****************************************** */ /* ------------------------------------------------------------------------ */ /* end of file */ /* designed by hamayan */ /* Copyright (C) 2003 - by hamayan */ /* ------------------------------------------------------------------------ */
変換元ピクセルデータ(*´ー`)Che←表示しきれません
/* ------------------------------------------------------------------------ */ /* 画像データテーブル */ /* designed by hamayan */ /* Copyright (C) 2003 - by hamayan */ /* ------------------------------------------------------------------------ */ /* Graphic Info*/ /* Type:BM*/ /* File size=1086*/ /* Offset=62*/ /* Header size=40*/ /* Width=101*/ /* Height=64*/ /* Planes=1*/ /* Count=1*/ /* Img size=1024*/ /* X pics=0*/ /* Y pics=0*/ /* Color Used=2*/ const long PixWidth = 101; const long PixHeight = 64; /* Pallet Info*/ /* parameter width = 13 height = 64 line = 16*/ const unsigned char GraphicBMPTable[] = { 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x1F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x01,0x01,0x20,0x70,0x30,0x00,0x00,0x00,0x01,0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x0F,0x0F,0x1F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0x00,0x00,0x00,0xE0,0xF0,0xF0,0xF8,0xF8,0xF8,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xF8,0xF8,0xF8,0xF8,0xF8,0xF0,0xF0,0xF0,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x0F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x02,0x00,0x00,0xC0,0xFF,0xD3,0xC9,0xE1,0xE1,0xE1,0xF1,0xF1,0xF3,0xF7,0xFF,0xFF,0x1F,0x01,0x91,0xF1,0xF1,0xE0,0xD0,0xC4,0xC0,0xC1,0x81,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xB7,0xF7,0xF7,0xF3,0x06,0x21,0x67,0x7F,0xFF,0xFF,0x8F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0x9D,0xBC,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0xFF,0x77,0xF0,0xFF,0xF8,0xFD,0xEC,0xEC,0xEC,0xEC,0xE4,0xC4,0xC4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xF0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xFC,0xFC,0xF0,0xF0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC8,0xF0,0xF0,0xC0,0xE0,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xCF,0xDF,0x9F,0xFF,0xFF,0xFF,0xFE,0xFC,0xFC,0xFE,0xFC,0xF8,0xF6,0xEC,0xFC,0xDC,0x14,0x0C,0x18,0x3C,0x3C,0x7A,0xE4,0xFC,0x80,0x90,0xDE,0x00,0xB2,0x80,0xF0,0xA0,0xE0,0xE0,0xE0,0xE7,0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xCF,0xFF,0xFF,0xFE,0xFE,0xF8,0xF8,0xFD,0xFE,0xFF,0xF7,0xFF,0xF1,0xFC,0xF9,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00, }; /* ********************************************* ************************************************** */ /* ***************************************** *********************************************** */ /* *************************************** ********************************************* */ /* ************************************* ***************************************** */ /* ************************************ ** *************************************** */ /* *********************************** *** ************************************** */ /* *********************************** * ************************************* */ /* ********************************** ************************************ */ /* ********************************** *********************************** */ /* ********************************* ********************************** */ /* ********************************* ****** ********************************** */ /* ********************************* *************** ********************************* */ /* ********************************* ******************** ******************************** */ /* ********************************* ********************** ******************************** */ /* ********************************* *********************** ******************************** */ /* ********************************* ************************ ******************************* */ /* ********************************* ***************** *** ******************************* */ /* ********************************** ** ***** * ******************************* */ /* ********************************* * **** * ******************************* */ /* ********************************* * * *** ******************************* */ /* ******************************** ** ******* *** * ******************************** */ /* ****************************** * ********* *** ******************************** */ /* **************************** ************* ******* ******************************** */ /* ************************** ************* ********* ******************************** */ /* ***************************** ************** ********* ****************************** */ /* ***************************** *************** ******* ****************************** */ /* **************************** ************ * ****** ****************************** */ /* **************************** ******** **** ****************************** */ /* ***************************** ************* *** ****************************** */ /* ***************************** ************* ***** ****************************** */ /* ***************************** ********* *** **** ****************************** */ /* ***************************** ************ *** ****************************** */ /* ***************************** **** * * ****************************** */ /* **************************** **** * ****************************** */ /* *************************** *** **** * ********* ****************************** */ /* ******************************* *** ******* ****************************** */ /* ******************************* ******* ******************************* */ /* **************************** * *********** ******************************* */ /* **************************** ************* ******************************* */ /* ****************************** * *********** ********************************* */ /* **************************** ********* ******************************* */ /* **************************** **** ******************************* */ /* ******************************* ******************************** */ /* ******************************* * ******************************** */ /* ********************************** ** ******************************** */ /* ********************************** ** ********************************* */ /* ********************************** ************************************** */ /* ********************************** ************************************** */ /* ********************************** ************************************** */ /* *********************************** * * * * * ************************************** */ /* *************************************** ****** ** ** * ************************************** */ /* ************************** ************* *** ***** * * ************************************* */ /* **************************** ************ *** **** * ** * * ************************************ */ /* **************************** ************ ***** * ******************************************* */ /* ****************************** ************* *** * * ***************************************** */ /* ******************************************** ***** ********************************************* */ /* ******************************************** * **** ************** ******************************* */ /* ********************************************** **** ********************************************* */ /* ********************************************** ***** * ********************************************* */ /* **************************************** ********** * *********************************************** */ /* **************************************** *********************************************************** */ /* ***************************************** *********************************************************** */ /* ***************************************************************************************************** */ /* ***************************************************************************************************** */ /* ------------------------------------------------------------------------ */ /* end of file */ /* designed by hamayan */ /* Copyright (C) 2003 - by hamayan */ /* ------------------------------------------------------------------------ */
マルツでMSP430ベースボード用部品の販売再開 [MSP430]
LCDが入荷したんでしょうかね。
http://shop2.genesis-ec.com/search/item.asp?shopcd=17210&item=0000000000145628
ベースボード、書き込み器と合わせて、土日限定送料無料キャンペーンを使って購入してみてください。
電波時計用アンテナ到着しました。 [MSP430]
トラ技付属基板+マルツベースボードで動かしていますが、F2012、F2013でグラフィックLCDを動かし始めたので、これを使ってグラフィックLCD仕様の電波時計もやってみたいです(*´ー`) 。
一番下の写真に、旧タイプのアンテナと、今回購入したアンテナを掲載しておきます。上が旧タイプのアンテナで、新タイプのアンテナは銅線が細くなり、巻き数もぐんと増えているのが判ると思います(写真を右クリックで写真のみ表示してみて下さい)。インダクタンスが増えた分、キャパシタンスが小さくなり、旧タイプではディスクリートのマイラだったコンデンサが、今はチップコンデンサに変更となっています。
これにより、おそらく受信感度が上がっている物と思われますね。ちなみに秋月製(トライステート製)の電波時計の場合は旧タイプです。
ただ、感度が上がった分、受信してしまう周囲のノイズレベルも上がると思われるので、その辺はソフトで対策が必要でしょう。バーストノイズの場合は如何ともしがたいですが、それよりポップノイズが頻繁に検出されますので、短いパルスを検出しても無視する位が丁度良いです。
ノイズ源としては蛍光灯なんかがよく上げられますが、パソコンの周囲でも上手くタイムコードを取れません。
兎に角ノイズになりそうな物から離しておかないと、何時まで経っても時刻が合わない事となります。
あと、電波の具合の良さそうな所を捜そうと、アンテナ持ってうろうろしたりしちゃいますが、そうするとAGCが何時まで経っても収束せず、これまた受からなくなりますんで、持ってうろうろはしない方が良いです。
今回注文したアンテナは、型名から判る様に40KHz/60KHz共用です。40KHzで使用する時は、マニュアル通り2pinと5pinをショートして使います。
ですが、ここを失敗しました。と言うより、CADのライブラリを作成する時、端子の部品面視と半田面視を逆にしてしまい、結果、pinの位置が上下方向で逆となっています。なんで間違えたかなあ、あんなに確認したのに。
40KHzで使用する場合は写真の様に半田面に実装するか、または部品面に実装し、半田面側で2pinと5pinをジャンパーして下さい。
60KHzで使用する時は2pinと5pinの接続は必要無いので、普通に部品面側に実装するだけで良いのですが、、、。
この電波時計には二つの水晶をフィルターとして使用します。使う地域に合った周波数の水晶を用意しますが、実際には40KHzか60kHzと言う事となります。負荷容量は12.5pFです。まあ大概の音叉型の水晶の負荷容量はこの値ですが。
但し、関東に住んでいる関係で、60KHzは確認していません。水晶は用意してあるので近日中に試してみようと思っていますが、十分な受信レベルが出るかどうかは不明です。
しかし感度が上がっている様なので、もしかしたら・・・。
それでは正式受注開始となります。提供できるのは4名様まで先着順です。
ちょっと失敗していますが、それでも構わん!と言う方はメールで連絡して下さい。
セット内容は、タイムコードデコードICのLA1650と基板、アンテナのみです。それ以外の部品はご自分でご用意お願いします。また、今回はメール便で送れません。
私のメールアドレスをご存知無い方の為に、一時的にコメント欄にアドレスを書いておきます。
MSP430F2013 + パスワールドさんの101×64ピクセルグラフィックLCD関数仕様 [MSP430]
このLCD、接続は簡単だけれども、ソフトウエアはどの程度簡単なの?と疑問に思うかもしれません。
実際の所、キャラクタジェネレータを内蔵しているキャラクタLCDと言う訳では無いので、基本的に全ての描画をグラフィックで行っています。
つまり文字を表示するにはフォントが必要と言う事になります。
と書くと、「えー面倒だなあ!」と思われるかもしれませんが、実際にはパスワールドさんから提供されるソフトウエアには、基本的な英数字(キャラクタサイズは5×8ピクセル)のフォントが提供されていますので、キャラクタフォントを自前で用意すると言った面倒は必要有りません。勿論自前でオリジナルのフォントを用意しても良い訳です。
パスワールドさんから提供されるライブラリの関数は、初期化以外では文字を表示するのに以下の2つの関数で事足ります。なお関数の中身のコードに付いては、著作権の有る物を私が公開できる権限は有りませんでの、必要ならLCDキットをご購入下さい。
1.MoveTo(X座標,Yバンド);
X座標は左からのピクセルを示し、Yバンドは、縦64ピクセルを8等分した単位で、上から順に0~7までとなります。
2.WriteString(文字列の先頭アドレス);
まああまり説明の必要は無いかと思いますが、先のMoveToで書き出し位置を決定したら、次にこの関数で実際に文字を表示します。
試しに以下の様なコードを実行したのが、上の写真です。
for( i = 0; i < 8; i++ ) { MoveTo(0,i); WriteString("01234567890123456789"); }こうすると実際の文字の配置状況が良く判るかと思います。文字サイズが5×8で、左右方向には1ピクセルの余裕を持たせて、文字同士がくっ付くのを防いでいます。上下方向にも事実上1ピクセル余裕を持たせてフォントが作成されており、上下方向での文字同士のくっ付きも避けられています。 表示範囲が、8行17文字である事も良く判るかと思います。 この辺(こことかここ)でやって来た事を活用できるかもしれませんね。
MSP430F2013 + パスワールドさんの101×64ピクセルグラフィックLCD [MSP430]
パスワールドさんではMSP430絡みで面白そうなデバイスやボードを提供しています。
今回ここのコメントに書き込みを貰ったので拝見してみると、101×64ピクセルのグラフィックLCDをF2013で制御されているとの事。
これは面白そう!と言う事で早速1セット注文しましたら、あっと言う間に送って頂いて、しかも動作サンプルプログラムまで頂いたので、早速例のCPUボード上に組み立てて動かして見ました。
如何でしょうか?、「Mr.Hamayan」は自分で入れたのではなく、パスワールドさんが個別に作成し、メッセージを入れた物です。
F2013との接続は、電源を入れてもたった7本で済みます。SC1602キャラクタLCD並ですね。
プログラムは提供していただいた物をそのまま使っています。ただ一部修正が必要でした。
まずプロジェクトがバージョンが新しくて開けない!と統合環境に怒られてしまいましたので、新たにプロジェクトを作って対応しました。
次に、CPUクロック等を設定するclock.cと言うファイルが有りますが、これがF2013用ではなく、"msp430x16x"用であった為に使う事が出来ませんでした。まあクロック関係のユーティリティプログラムなので必要なプログラムをこちらで用意すれば良いだけの話で、LCD2013.cに以下の修正を入れます。その代わりclock.cはプロジェクトから外して置きます。
#include "iodef2012.h" // SetDCOClockFastest(); //これをコメントアウト BCS_CTL1.BIT._RSEL = 15; //16MHzに設定 DCO_CTL.BIT._DCO = 4; //16MHzに設定
次に、pw10164lcd.cの中でdelayと言う関数を参照していますが、この関数が存在するのがclock.cの中でして、しかしclock.cはプロジェクトから外してしまったので利用できません(delay関数の中で使用しているレジスタもF2013には存在しないし)。
何をやっているかと言えば、引数×1msのwaitを入れるだけの関数なので、例のwait関数と同じ物をpw10164lcd.cの中に作成し、お茶を濁します。
void delay (uint16 tim) { uint16 i; volatile int j; for( i = 0,tim *= 2000; i < tim; i++ ) { j++; } }今回は16MHzで動作させるので、乗率は2000としています。 その他エラーではなくwarningだったのですが、graphic2013.cの先頭辺りに以下のプロトタイプ宣言を入れています。
void GPIOSPISendByte(uint8 byte);しかし一番大変だったのは、送ってもらったプログラムのRAR形式の圧縮ファイルの解凍と、FPCコネクタの差し込む向きに悩んだ位でしょうか。 グラフ描いたりとかまで行ければ!と思っています。 ところでパスワールドのパスカルさんって、てっきりハンドルネームだと思っていましたが、本名?。
わりと定番のバーサライターを作ってみました [MSP430]
LEDチカチカでは定番とも言えるバーサライターをMSP430F20xx EVA BOARDに構成してみました。
電源は、裏のコイン電池です。
一番面倒なのは、文字のパターンを作る所で、プログラム自体はタイマー割り込みで順次LEDに出力するだけなので簡単です。
しかし、もう少し工夫が必要かも。