2012/07/14

dsPIC33FJ32GP202

,
久々に弄ることにした(暇だった)。とりあえずPICKit2の踏んづけて折ったUSBコネクタを付け直すところからだった…

UART、つまりシリアルがまともに動いてくれなくて困ってるわけです。
datasheet:http://ww1.microchip.com/downloads/jp/DeviceDoc/jp531358.pdf
UARTのマニュアル(日本語):http://ww1.microchip.com/downloads/jp/DeviceDoc/70188D_JP.pdf
ここに書いてあるように、UxMODE、UxSTAレジスタで設定して、UxBRGにボーレートを設定して関数呼ぶわけです、が、まあ動くはずもなく…
実際にはC30を用いて、なんかよくわからないコンフィグのパラメータ並べるわけです、回折はここが詳しめ:http://www.crystal-creation.com/robot/technical-information/microcomputer/pic/programming/built-in-module/uart/

(dsPIC33FJ32FP202) - FT232(秋月モジュール) -USB- PCみたいな構成だけど、オシロで見る分にはFT232のRXポートまではちゃんと来てるみたい…?
PC側の問題(ドライバ、ポート、後はTeraTermとか)なのか、FT232の問題(ピンが違うor電圧設定が違う)なのかようわからん…

UM232RのRXDピンの波形





#include < p33FJ32GP202.h >
#include < uart.h >

_FOSCSEL(FNOSC_PRI & IESO_OFF);
_FOSC(POSCMD_HS & OSCIOFNC_OFF & IOL1WAY_OFF);
_FWDT(FWDTEN_OFF & WINDIS_OFF);
_FPOR(FPWRT_PWR1 & ALTI2C_OFF);
_FICD(JTAGEN_ON & ICS_PGD1);

//UARTの設定
//IDLE_ONE? 
unsigned int U1MODE_value = UART_EN & UART_IDLE_CON & UART_IrDA_DISABLE &
       UART_MODE_SIMPLEX & UART_UEN_00 & UART_EN_WAKE &
       UART_DIS_LOOPBACK & UART_DIS_ABAUD & UART_UXRX_IDLE_ONE &
       UART_BRGH_SIXTEEN & UART_NO_PAR_8BIT & UART_1STOPBIT;
unsigned int U1STA_value = UART_INT_TX_BUF_EMPTY & UART_SYNC_BREAK_DISABLED &
       UART_TX_ENABLE & UART_INT_RX_CHAR & 
       UART_ADR_DETECT_DIS & UART_RX_OVERRUN_CLEAR;
const unsigned int CLOCK_FREQUENCY = 7370000;
const unsigned int BAUDRATE = 9600;

int main()
{
 CLKDIV = 0; //set 1:1
 //AD1PCFGL = 0xFFFF; //portA -> all digital
 TRISA = 0x0000; //all out
 PORTA = 0x0001; //RA0 -> high
 TRISB = 0x0010; //RB4(RP4)はinput
 //UART1ピンの割り当て
 RPINR18bits.U1RXR = 2;//RXはRP2, RB2 6pin
 RPOR2bits.RP4R = 3; //TXはRP4(RB4)
 //UART1初期設定
 //ボーレートの計算
 const double BaudRateF = ((double)CLOCK_FREQUENCY / (16*BAUDRATE)) - 1;
 const unsigned int baud = (unsigned int)(BaudRateF + 0.5);
 //9600bps、パリティ無し8bit、フロー制御なし
 OpenUART1(U1MODE_value, U1STA_value, baud);
 
 volatile int j = 0;
 while(1)
 {
  //文字を送る
  WriteUART1('k');
  j++;
 }
 return 0;
}
Read more →

2012/07/11

[プログラミング]iTextSharpでpdfを操作する

,
pdfはめんどくさい pdfはしねばいい pdfは云々、とpdfに関する恨みを並べても、結局使わないといけないのは変わらないので…諦めて向き合います

http://homepage2.nifty.com/nonnon/SoftSample/CS.NET/SamplePdfSplit.html
http://jp.techerald.com/page/imagen-itextsharp-mantener-las-dimensiones-en-pixeles.html
http://stackoverflow.com/questions/4932187/itextsharp-scaling-image-to-be-full-page
http://yonaizumi.dip.jp/weblog/cappe/2010/11/ctiffpdf.html
http://sourceforge.net/projects/itextsharp/

参照の設定は、dllをどっかに保存しといて、参照の追加→参照→dllを指定
コンパイルすると、なんか自動的に/Debug、/Release に配置される???

なんか、AbsolutePositionって左下が(0,0)なのかな。直さなきゃ

コード(適当)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
//iTextSharp
using iTextSharp.text;
using iTextSharp.text.pdf;

namespace jpg2pdf
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        //jpgファイルを開く
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.FileName = "default.jpg";
            ofd.InitialDirectory = "";
            ofd.Filter = "jpgファイル(*.jpg)|*.jpg|すべてのファイル(*.*)|*.*";
            ofd.FilterIndex = 1;
            ofd.Title = "開くファイルを選択してください";
            ofd.RestoreDirectory = true;
            ofd.CheckFileExists = true;
            ofd.CheckPathExists = true;

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = ofd.FileName;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            var sfd = new SaveFileDialog();

            sfd.FileName = "無題.pdf";
            sfd.InitialDirectory = "";
            sfd.Filter = "pdfファイル(*.pdf)|*.pdf|すべてのファイル(*.*)|*.*";
            sfd.FilterIndex = 1;
            sfd.Title = "保存先を指定してください";
            sfd.RestoreDirectory = true;
            sfd.OverwritePrompt = true;
            sfd.CheckPathExists = true;

            if (sfd.ShowDialog() == DialogResult.OK)
            {
                textBox2.Text = sfd.FileName;
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            var doc = new Document();
            //pdf保存先
            PdfWriter.GetInstance(doc, new FileStream(textBox2.Text, FileMode.Create));
            //pdfを開く
            doc.Open();
            //画像データを取得
            var image = iTextSharp.text.Image.GetInstance(textBox1.Text);
            doc.SetPageSize(PageSize.A4);
            //サイズのフィット
            image.ScaleToFit(doc.PageSize.Width, doc.PageSize.Height);
            //画像の配置箇所設定
            image.SetAbsolutePosition(0f, 0f);
            //用紙サイズの設定
            //doc.SetPageSize(new iTextSharp.text.Rectangle(image.PlainWidth, image.PlainHeight));
            //書き込み
            doc.Add(image);
            //pdfを閉じる
            doc.Close();
            //完了のダイアログ(無いと終わったかわからない)
            MessageBox.Show("変換が完了しました");
        }

    }
}

Read more →

2012/07/06

[電子工作]dsPICについて 1

,
dsPICに逃げたマン

FFTの参考→http://www.picfun.com/dspprogframe.html

Q. libdsp-elf.a libdsp-coff.a どっちだよ

A. libdsp-coff.aかしら。こっちでBUILDは通った。参考: http://digitalfilter.com/products/dfdspic804/jikken/jikken02.html

COFFがデフォルト、libdsp.aが泣く環境変数もコマンドラインoptionもない場合、libdsp-coff.aが使われます http://ww1.microchip.com/downloads/en/DeviceDoc/DS51456C_JP.pdf

Q. リンカースクリプト(Linker Script, .gld)どこー?

A. 俺のは/MPLAB C30/support/dsPIC33F/gld

Q. 上の参考先だとdsp.hが""だけど<>でいいの?ていうかどこ

A. 俺のは良かった。俺のは。adc10.hはどこ…
→dsPIC33F系統の場合、adc.hになります(参考:http://www.crystal-creation.com/robot/technical-information/microcomputer/pic/programming/built-in-module/adc/)。というかdsPIC33FJ32GP202はADC10bitじゃなくて12bitだったからしぬね。

Q. flactionalがエラーです><

A. f"r"actionalです!!!!!! これやって頭抱えた

Q. 'for' loop initial declaration used outside C99 mode
A.

Q. どうでもいいけど、参考先だとMAX_SIZE=128だけど、dsPIC33FJ32GP202はメモリ確保できません的エラー返ってくるから、MAX_SIZE=64じゃないと動かない

眠いから終わり
Read more →

2012/06/10

Android SDK 7

,
Q. EditTextにフォーカスしてるのに、ソフトウェアキーボード出てこないんだがー???

A. これのフォーカス移動時の制御ねhttp://blog.global-eng.co.jp/android/2011/06/03/%E3%82%BD%E3%83%95%E3%83%88%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AE%E5%88%B6%E5%BE%A1/

Q. updateProfileとupdateStatus間違えました(超真顔)

A. updateProfileはアカウントの自己紹介、名前、現在地などを更新だ。nullだと前のままだ。
updateStatusは引数Stringのみで、Stringの内容を呟くぞ。
間違えてupdateProfileしちゃったらTwilogかなんかを見て復帰させよう
Doc:https://sites.google.com/site/elekmole/twitter4jtop/twitter-class/tweet/updatestatus

Q. ビルド前に自動で上書き保存してくれ

A. Eclipse:Window->設定->Workspace->ビルド前に保存
参考:http://axid.gozaru.jp/jtag-soft/miqnnet-soft.html

Q. Menuに指定するicon、defaultだとどんなのがあるのよ

A. http://www.taosoftware.co.jp/blog/2008/11/android_5.html

Q. 画像取得

A. http://d.hatena.ne.jp/YasushiIizuka/20090103/1230976906

Q. アプリケーションの終了

A. http://www.ecoop.net/memo/archives/2011-01-24-1.html

Q. ソフトウェアキーボードのHeight

A. http://y-anz-m.blogspot.jp/2010/12/androidonscreen-input-methods.html
http://d.hatena.ne.jp/Superdry/20110715/1310754502

Q. UI配置

A. http://pentan.info/android/app/layout/parts_property.html

Q. 改行コード消す

A. http://d.hatena.ne.jp/moon-note/20080205/1202185936
Read more →

2012/06/07

Android SDK 6

,
UIいろいろ

Q. 読み込むときにくるくる回ってるやつ

A. プログレスダイアログ
参考:http://www.adakoda.com/android/000082.html 円スタイルに

Q. 入力できるDialog

A. カスタムダイアログ

Q. 別ThreadからUIを弄る

A. 別Threadをnew Thread(new Runable(){...
Q. 複数アカウント

A. AccessTokenを全ユーザー分保持する…?
Twitterオブジェクトが1つしか存在できないやつだと結構嘆き
プロセス起動しとくとか、かしら

Memo
未実装
ツイーヨ機能
サブ垢からのふぁぼ爆撃
最初の認証画面
カスタムUI
Read more →

2012/06/05

Android SDK 5

,
Q. Eclipseでsetter/getterの自動生成は

A. http://www.javaroad.jp/opensource/js_eclipse12.htm
エディタ上で右クリック->ソース->自動生成

Q. accessToken永続化???

A. いちいち認証させずにaccessToken, accessTokenSecret持ってればいいみたいよ
これとか http://www.ne.jp/asahi/hishidama/home/tech/google/appengine/twitter4j.html
これとか http://d.hatena.ne.jp/pon0927/20100717/1279374217
accessTokenとかはTwitter DevのMy applicationsのとこに出てるやつでいいっぽい??????一応あれでいけてる。

Q. Twitter4Jでどれ呼び出すの

A. TLをみる→getFriendsTimeline()
自分のツイーヨを見る→getUserTimeline()

Q. ListViewカスタマイズしたい

A. ここを参考 http://android.roof-balcony.com/view/listview/custom/
因みにsetAdapter()じゃなくて、listView.setListAdapter();

Q. 暗黙的インテントとonActivityResult(前回書いた奴のコード)
public void onCreate(Bundle savedInstanceState){
        //暗黙的インテント
        String url = "http://www.google.co.jp";
        Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        int requestCode = 123;
        startActivityForResult(browserIntent, requestCode);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        //ここに処理がかえってくる
        //requestCode = 123
}

Q. Win32APIで言うとこのMessageBox()みたいなのがほしい、デバッグ用に

A. Log.v()とか使え
ダイアログ出したいなら
public void debugDialog(String title, String message) {
 new AlertDialog.Builder(this)
   .setTitle(title)
   .setMessage(message)
   .setIcon(R.drawable.icon)
   .setPositiveButton("Yes",
     new DialogInterface.OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog,
        int which) {
      }
     })
   // .setNegativeButton("No", null)
   .show();
}

Read more →

Android SDK 4

,
Q. ddmsでてこい

A. ddmsはコマンドラインから起動
○○\Android\android-sdk\tools\ddms.exe

Q. onActivityResultって暗黙的インテントでも帰ってくるの

A. 標準搭載webBrowserをstartActivityForResultしたら返ってきたよ

Q. Adapter

A. adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);して、あとでadapter.add(String)でも大丈夫

android.R.layout.simple_list_item_1は元から定義されてるっぽ

Read more →

2012/06/01

Android SDK 3

,
メモ 
Activityを追加しようとする→AndroidManifest.xmlにその旨書き込んどく

Q. AndroidManifest.xmlが、ディスク上にちゃんと存在するのにEclipseだとナイことになってる

A. AndroidManifest.xmlを他のフォルダにうつしとくとかしといて、EclipseのGUIでバージョン変えるとかする→Ctrl+Sで新たに作成されて読み込まれる

Q. EclipseのGUIからAndroidManifest.xmlでpermissionいじったのに反映されない

A. uses-permissionタグを直打ちで書く

Q. SDKバージョンが違います云々

A. AndroidManifest.xmlにuses-sdk
http://d.hatena.ne.jp/skelton_boy/20091007/1254927644

Q. 画面遷移ってどうすんの

A. Intentを使います。Intentで新たなActivityを呼び出す。この時引数の渡しはputExtra/getStringExtraとか使う。ActivityはAndroidManifest.xmlに書いておく
http://wiki.livedoor.jp/moonlight_aska/d/%B2%E8%CC%CC%A4%F2%C1%AB%B0%DC%A4%B9%A4%EB

Q. 新たなLayoutを追加したい

A. プロジェクトを右クリック→新規→その他→ファイル名に拡張子(.xml)まで含めて書く→Layoutにチェック→完了
ここでファイル名は[a-z0-9._]らしいよ

Q. UI配置できね

A. 知らね。右揃えとかするならGravityいじろう。先になんたらLayoutで枠作って、その上にぺたぺた部品貼り付けてく感じ。LayoutなんたらはHorizontal/Verticalが選べる(一方向のみ)。

Q. なんか実行なしになる

A. 実行の構成→Android、かなんかをいじろう

Q. 新たなActivityの追加

A. 田んぼみたいなかっこうしたとこで右クリック→新規→クラス→継承元云々だけど忘れたから調べ給え



Read more →

2012/04/29

Android SDK 2

,
Q. ネットに繋がらない

A. エミュ機はデフォだと通信しないっぽいから、設定する。呪文はgetprop/setprop???
http://gettingsignals.blogspot.jp/2011/04/tipsandroid.html

Q. ネットにつながってるのにPermission deniedくらう

A. http://feedyomi.blog32.fc2.com/blog-entry-181.html
アプリにネット使える権限を設定的な 上のうrl参照

Q. UIにあるeditTextとかどうやって使うの

A. findViewById(id.~~~~~~)をeditTextなりButtonなりにキャストして使う どっか変数にでもいれとけ


Read more →

2012/04/28

Android SDK

,
Android SDKのエラーの対症療法的なんたら
Q.Error generating final archive: Debug Certificate expired on 12/03/30 22:38 android1  Android Packaging Problem

A. C:\Users\(Username)\.android\debug.keystoreを消す→keytoolで生成→プロジェクトをクリーン

Q.R.~~~系がエラー

A.import android.Rをしない

Q.アプリが既にエミュにインストールされてる

A. Android\android-sdk\platform-tools\adb.exeで、コマンドラインから adb uninstall (パッケージ名 例:com.example.android.apis)

Twitter4Jはまず公式のコード例を見る
Read more →