tv hack http://kohacraft.com/archives/1037090651.html

Dependencies:   MCP4922 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "MCP4922.h"
00003 DigitalOut myled(LED1);
00004 MCP4922 ad(0, dp9, dp4);    //spiチャンネル1 /CS /LAT
00005 
00006 // x,y = -1〜+1 をADのフルレンジへ変換し出力する
00007 void outAd( float x , float y )
00008 {
00009     int xtemp , ytemp;
00010     xtemp = (int)(2048.0 * x + 2047.0);
00011     if( xtemp < 0 )
00012         xtemp = 0;
00013     if( xtemp > 4095 )
00014         xtemp = 4095;
00015 
00016     ytemp = (int)(2048.0 * y + 2047.0);
00017     if( ytemp < 0 )
00018         ytemp = 0;
00019     if( ytemp > 4095 )
00020         ytemp = 4095;
00021     
00022     ad.select(0);
00023     ad.write( xtemp ); 
00024     ad.select(1);
00025     ad.write( ytemp ); 
00026     ad.update();
00027 }
00028 
00029 int main() {
00030     
00031     ad.autoUpdate = 0; //しない
00032     ad.VrefA = 3300; //Vrefの電圧
00033     ad.VrefB = 3300; //Vrefの電圧
00034     ad.select(0);
00035     ad.buffered = 1; //Vrefのアンプ有効化
00036     ad.setGain(1);  //出力ゲインx1
00037     ad.select(1);
00038     ad.buffered = 1; //Vrefのアンプ有効化
00039     ad.setGain(1);  //出力ゲインx1
00040     
00041     float pi = 3.141592653589793238462;
00042     
00043     while(1) {
00044         
00045         for( float y=-1.0 ; y<=1 ; y+=1.0/60 )
00046         
00047         for( float x=-1.0 ; x<=1 ; x+=1.0/60 )
00048         {
00049         
00050         
00051             outAd(  x, y );
00052         }
00053         
00054     }
00055 }