1

私は、Microsoft.NETgadgeteerモジュールを使用してゲームボーイプリンターをハッキングして通信するプロジェクトに取り組んでいます。これまで私はハードウェアを扱っていました(このスレッドを参照してください:http ://www.tinyclr.com/forum/21/6665/ )

必要に応じてプリンターをSPIシリアル接続として配線しました。次に、印刷の調査を開始するために、プリンターとのバイトパッケージの交換を開始する必要があります。

私はいくつかのコードをまとめようとしましたが、惨めに失敗しました。プリンターと話す方法がよくわかりません。私が行った唯一の進歩はSPI構成ですが、実際の通信は私が理解できる範囲を超えています。おそらく誰かが私を正しい方向に向けることができないのでしょうか?

これが私がいくらか複製しようとしているコードです:http://milesburton.com/images/e/ec/GBPrinter_Arduino_Alpha_0.01.pde

私の主な参考資料はThermaldotnet(sparkfunプリンター用のライブラリ)github.com/yukimizake/ThermalDotNetです。

スパイダー上のSPI:tinyclr.com/forum/21/6621/

および基本的なSPIの例:* wiki.tinyclr.com/index.php?title=SPI_-_MP3_Decoder *

バイト転送を確認して、実際に機能しているかどうかを確認するにはどうすればよいですか?

私がこれまでに持っているもの:

using System;
using System.Collections;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Presentation.Controls;
using Microsoft.SPOT.Presentation.Media;
using Microsoft.SPOT.Touch;
using Microsoft.SPOT.Hardware;

using Gadgeteer.Networking;
using GT = Gadgeteer;
using GTM = Gadgeteer.Modules;
using Gadgeteer.Modules.GHIElectronics;

namespace printTherm
{
public partial class Program
{
    static SPI MySPI = null;
    public static void Sub()
    {

        InputPort Therm;
        Therm = new InputPort(Cpu.Pin.GPIO_Pin8, false, Port.ResistorMode.PullUp);

        SPI.Configuration MyConfig =
             new SPI.Configuration(Cpu.Pin.GPIO_Pin8,
             false, 0, 0, true, true, 1000, SPI.SPI_module.SPI1);
        MySPI = new SPI(MyConfig);



        bool exit = false;
        do
        {
            byte[] tx_data = new byte[1];
            byte[] rx_data = new byte[0];
            while (Therm.Read() == true) ;

            tx_data[0] = 0x01;
            tx_data[1] = 0x00;

            MySPI.WriteRead(tx_data, rx_data);

            while (Therm.Read() == false) ;
            byte[] tx_data2 = new byte[28];
            byte[] rx_data2 = new byte[28];
            for (int i = 0; i < 28; i++)
            {
                tx_data2[i] = 0xFF;
                rx_data2[i] = 0x00;
            }
            MySPI.WriteRead(tx_data2, rx_data2);
        } while (exit == false);


        Thread.Sleep(100);
    }

    // This method is run when the mainboard is powered up or reset.   
    void ProgramStarted()
    {

        Debug.Print("Program Started");
    }
}
}

ピンを8(MISO)に変更し、配列を追加したことを除けば、上記のコードとほぼ同じです。私はこの時点で本当に盲目になっています。このような知識が乏しいので、これに入るのは気分が悪いですが、少しでも助けていただければ幸いです。

これに興味のある人のためのいくつかのリソース:完全な音楽シールドコード:code.tinyclr.com/project/330/fez-music-shield/

ドキュメント:msdn.microsoft.com/en-us/library/ee436313.aspx その他のドキュメント:netmf.com/Gadgeteer/docs/GadgeteerCore/2.41.500/html/0d40434b-2a84-2f72-ca4d-b0012535ea58.htm

非ハイパーリンクについて申し訳ありません+事前に感謝します!

4

0 に答える 0