回答編集履歴

1

frq 比較パラメータ 変更

2019/02/02 20:55

投稿

koujikuu
koujikuu

スコア401

test CHANGED
@@ -1,4 +1,8 @@
1
+ ```ここに言語を入力
2
+
3
+ コード
4
+
1
- シリアルモニタでfrqダミー値を入れて確認
5
+ ```シリアルモニタでfrqダミー値を入れて確認
2
6
 
3
7
  frq境界をまたぐ時のみ spi_out() を出力
4
8
 
@@ -75,3 +79,95 @@
75
79
  }
76
80
 
77
81
  ```
82
+
83
+ frq_chk[] として追加してみました frqs1*4 は使ってません
84
+
85
+ シュミットトリガのようにヒステリスを持たせる場合は、frq 上昇時と下降時で frq_chk[] を切り換えれば良いと思います
86
+
87
+
88
+
89
+ ```
90
+
91
+ #include <SPI.h>
92
+
93
+ SPISettings mySPISettings = SPISettings(500000, MSBFIRST, SPI_MODE0);
94
+
95
+ long int frq = 0;
96
+
97
+ unsigned char spi_dat[]={ B01001000 , B01001010 , B01011010 , B01011010 , B01011110 , B11011010 };
98
+
99
+ #define frqs0 10000ul
100
+
101
+ #define frqs1 10884ul
102
+
103
+ long frq_chk[] = { frqs0 , frqs1 , frqs0*2 , frqs1*2 , frqs0*4 , frqs1*4 };
104
+
105
+ void spi_out( unsigned char sel ){
106
+
107
+ if ( sel > 5 ){ return; }
108
+
109
+ SPI.beginTransaction(mySPISettings);
110
+
111
+ digitalWrite(10, HIGH);
112
+
113
+ SPI.transfer( spi_dat[sel] );
114
+
115
+ SPI.transfer(B11001111);
116
+
117
+ digitalWrite(10, LOW);
118
+
119
+ }
120
+
121
+ void setup() {
122
+
123
+ Serial.begin( 9600 );
124
+
125
+ Serial.println("Arduino Program Start !!");
126
+
127
+ SPI.begin();
128
+
129
+ }
130
+
131
+ void loop() {
132
+
133
+ static char add = 1;
134
+
135
+ static unsigned char sel = 9;
136
+
137
+ unsigned char frqs;
138
+
139
+ if ( frq <= 0 ){ add = 1; }
140
+
141
+ if ( frq >= 60000 ){ add = -1; }
142
+
143
+ // ---------------------- 判定メイン部
144
+
145
+ // frqs = frq / 10000 ; if ( frqs > 5 ){ frqs = 5; }
146
+
147
+ for ( frqs = 0 ; frqs < 5 ; frqs++ ){
148
+
149
+ if ( frq < frq_chk[frqs] ){ break; }
150
+
151
+ } // for
152
+
153
+ if ( frqs != sel ){
154
+
155
+ sel = frqs;
156
+
157
+ // Serial.print(" frqs = "); Serial.print( frqs );
158
+
159
+ Serial.print(" spi_out("); Serial.print( frqs ); Serial.print(") ");
160
+
161
+ Serial.print(" frq = "); Serial.println( frq );
162
+
163
+ spi_out( frqs );
164
+
165
+ }
166
+
167
+ // ----------------------
168
+
169
+ frq += add;
170
+
171
+ }
172
+
173
+ ```