stm32l010 spi 1r

Dependencies:   mbed

main.cpp

Committer:
caa45040
Date:
2021-05-18
Revision:
0:0bc87195b118

File content as of revision 0:0bc87195b118:

#include "mbed.h"

//*          *****  *****  
//*         *       *    * 
//*         ******  *    *
//*         *       *    *
//*         *       *    *
//********   *****  *****

#define swclk1  PA_5    //A4
#define test01  PA_6
#define swdio1  PA_7    //A6
#define en1     PA_4    //A3

//DigitalOut test1(test01);

//DigitalOut swdclk(swclk1);
//DigitalOut swdio(swdio1);
DigitalOut en(en1);

SPI spi( swdio1 , test01, swclk1); // mosi, miso, sclk

char seg[32][8] = {
 { 1,1,1,1,1,1,1,1 }, //0 @ -> ' '
 { 0,0,0,0,0,1,0,1 }, //1 A  o
 { 1,1,0,0,0,0,0,1 }, //2 B      combined use "6"
 { 0,1,0,1,0,0,1,1 }, //3 C
 { 1,0,1,0,0,0,0,1 }, //4 D
 { 0,1,0,0,0,0,1,1 }, //5 E  o
 { 0,1,0,0,0,1,1,1 }, //6 F
 { 0,1,0,1,0,0,0,1 }, //7 G

 { 1,0,0,0,0,1,0,1 }, //8 H  o
 { 1,0,1,1,1,1,0,1 }, //9 I     combined use "1"
 { 1,0,1,1,0,0,0,1 }, //10 J
 { 0,1,0,0,0,1,0,1 }, //11 K 
 { 1,1,0,1,0,0,1,1 }, //12 L  o
 { 0,1,1,1,0,1,0,1 }, //13 M
 { 0,0,0,1,0,1,0,1 }, //14 N  o
 { 0,0,0,1,0,0,0,1 }, //15 O  o combined use "0"

 { 0,0,0,0,0,1,1,1 }, //16 P
 { 0,0,0,0,1,1,0,1 }, //17 Q combined use "9"
 { 1,1,1,0,0,1,1,1 }, //18 R
 { 0,1,0,0,1,0,0,1 }, //19 S combined use "5"
 { 1,1,0,0,0,0,1,1 }, //20 T
 { 1,0,0,1,0,0,0,1 }, //21 U
 { 1,1,1,1,0,0,0,1 }, //22 V
 { 1,0,0,1,1,0,1,1 }, //23 W  o
 { 1,1,0,0,1,1,0,1 }, //24 X

 { 1,0,0,0,1,0,0,1 }, //25 Y
 { 0,0,1,0,0,0,1,1 }, //26 Z combined use "2"
 { 0,0,1,0,1,0,0,1 }, //27 [  --> "3"
 { 1,0,0,0,1,1,0,1 }, //28 \  --> "4"
 { 0,0,0,1,1,1,0,1 }, //29 ]  --> "7"
 { 0,0,0,0,0,0,0,1 }, //26 ^  --> "8"
 { 1,1,1,1,1,0,1,1 }  //31 _
};

int vc;
int ch_chvc(int s)
{
    s = s - 64;
    
    vc =0;
    vc = vc | ((!(seg[s][7])) << 7);
    vc = vc | ((!(seg[s][3])) << 6);
    vc = vc | ((!(seg[s][2])) << 5);
    vc = vc | ((!(seg[s][4])) << 4);
    vc = vc | ((!(seg[s][5])) << 3);
    vc = vc | ((!(seg[s][6])) << 2);
    vc = vc | ((!(seg[s][1])) << 1);
    vc = vc | ((!(seg[s][0])) << 0);
    
    return(vc);
}//ch_chvc

//d int v;
//d int rs;
//d void seg1()
//d {
//d     swdio=((v>>7)&1);   swdclk=1;swdclk=0; //7
//d     swdio=((v>>6)&1);   swdclk=1;swdclk=0; //6
//d     swdio=((v>>5)&1);   swdclk=1;swdclk=0; //5
//d     swdio=((v>>4)&1);   swdclk=1;swdclk=0; //4
//d     swdio=((v>>3)&1);   swdclk=1;swdclk=0; //3
//d     swdio=((v>>2)&1);   swdclk=1;swdclk=0; //2
//d     swdio=((v>>1)&1);   swdclk=1;swdclk=0; //1
//d     swdio=((v>>0)&1);   swdclk=1;swdclk=0; //0
//d     swdio=rs;   
//d     en=1; 
//d     wait_ms(1);      
//d     en=0;       
//d }//seg1

int main() {

//d    en=1;          //debug
//d    wait_ms(1000); //debug
//d    
//d    swdio=1;       //debug
//d    wait_ms(1000); //debug
    
//d     en=0;
//d     swdio=0;
//d     for(int i=0;i<16;i++){
//d         swdclk=1;
//d         wait_ms(15);
//d         swdclk=0;
//d         wait_ms(15);
//d     }//for

    spi.format(8,0);
    spi.frequency(1000000);
    
    en=0;
    
    int v;  //バリュー 表示のパターン
    
    //v=ch_chvc('Y');
    //spi.write(v);en=1;en=0;  //debug
    //wait_ms(1000);
 
    v=ch_chvc('@');
    spi.write(v);en=1;en=0;  //debug
    wait_ms(1000);
 
    //en=1;          //debug
    //wait_ms(1000); //debug
      
//d    en=0; 
//d    for(int i=0;i<16;i++){
//d        en=1;
//d        wait_ms(15);
//d        en=0;
//d        wait_ms(15);
//d    }//for

//d    v=0x55;seg1(); //debug
//d    wait_ms(1000); //debug
//d    v=0xaa;seg1(); //debug
//d    wait_ms(1000); //debug

    int ii; //ループカウンター
    //int v;  //バリュー 表示のパターン

    //無限ループ
    while(1) {

        //0分
        v=ch_chvc('O');spi.write(v);en=1;en=0;
    
        for(ii = 0;ii < 60;ii++){
            wait_ms(1000);
        }//for

        //1分
        v=ch_chvc('I');spi.write(v);en=1;en=0;
        
        for(ii = 0;ii < 60;ii++){
            wait_ms(1000);
        }//for

        //2分
        v=ch_chvc('Z');spi.write(v);en=1;en=0;

        for(ii = 0;ii < 60;ii++){
            wait_ms(1000);
        }//for

        //3分
        v=ch_chvc('[');spi.write(v);en=1;en=0;

        
        while(1){} //無限ループ
//d        while(1){           //debug
//d            swdclk=1;       //debug
//d            wait_ms(1000);  //debug
//d            swdclk=0;       //debug
//d            wait_ms(1000);  //debug
//d        }//while            //debug
        

//d        while(1){           //debug
//d            en=1;       //debug
//d            wait_ms(1000);  //debug
//d            en=0;       //debug
//d            wait_ms(1000);  //debug
//d        }//while            //debug

    }//while //無限ループ
}//main

//容量削減
void error(const char* format, ...){}