Ich würde gern mit einem attiny eine Freq messen und via i2c abfragen
Das schaut bei mir aktuell so aus und funktionert natürlich nicht,
die gelesenen Werte sind immer null ;(
Kann jemand sehen warum ?
1
#include "main.h"
2
3
#define I2C_SLAVE_ADDRESS 4
4
#define LED_PIN PB3
5
#define SENSOR PB1
6
#define SCL PB2
7
#define SDA PB0
8
9
volatile float SENSOR_time = 0;
10
volatile float SENSOR_time_last = 0;
11
int SENSOR_array[5] = {0,0,0,0,0};
12
volatile bool sensorISRIsCounting = 0;
13
unsigned int senVal = 0;
14
15
unsigned long previousMillis = 0;
16
unsigned int interval = 100;
17
18
void readSENSOR() {
19
if (SENSOR_time > 0 && sensorISRIsCounting > 0 ) {
20
SENSOR_array[0] = SENSOR_array[1];
21
SENSOR_array[1] = SENSOR_array[2];
22
SENSOR_array[2] = SENSOR_array[3];
23
SENSOR_array[3] = SENSOR_array[4];
24
// interrupts bei einer volatile variable sperren !!!
Ray M. schrieb im Beitrag #5069994:
> flachwichser
Könnte man meinen...
Zum Thema: Ich warne vorher, daß ich von C nichts verstehe, denke aber:
Hier wird die Variable "Sensor-Time" mit Null initialisiert:
Ray M. schrieb:> volatile float SENSOR_time = 0;
...und hier gehts nicht los, weil die Bedingung "Sensor_time>0" nicht
erfüllt ist:
Ray M. schrieb:> if (SENSOR_time > 0 && sensorISRIsCounting > 0 ).....
Wie gesagt: Ohne Gewähr -ich bin kein C-Mann
Abel
sensorISRIsCounting und SENSOR_time werden von sensorISR() gesetzt,
so hätte ich es jedenfalls gern ... Kann es sein das noch irgendwas
Wildes
auf einem attiny machen muss, damit Interrupts funktionieren ?
Ray M. schrieb:> Kann es sein das noch irgendwas> Wildes> auf einem attiny machen muss, damit Interrupts funktionieren ?
Normalerweise muß man Interrupts extra erlauben. In anderen Sprachen mit
"Sei" oder mit "Enable Interrupts".
Ob (und wie) das hier auch so ist, das weiß ich nicht.
Abel
Abel H. schrieb:> Zum Thema: Ich warne vorher, daß ich von C nichts verstehe, denke aber:
Das ist auch kein reines C sondern wieder Arduino Zeugs...
Ray M. schrieb im Beitrag #5069994:
> flachwichser
...was diese Art der Kommunikation auch vermuten lässt.
Schade das die Antwort gegeben wurde, denn nach diesem Kommentar hätte
ihm nicht mehr geholfen gehört.
Abel H. schrieb:> Ray M. schrieb:>> Kann es sein das noch irgendwas>> Wildes>> auf einem attiny machen muss, damit Interrupts funktionieren ?>> Normalerweise muß man Interrupts extra erlauben. In anderen Sprachen mit> "Sei" oder mit "Enable Interrupts".>> Ob (und wie) das hier auch so ist, das weiß ich nicht.>> Abel
Ich hab das jetzt mal ganz minimal versucht.
Aber auch das funktioniert so nicht.
Das sollte doch jenachdem ob an PB1 5V oder GND anliegen
den Status der LED umschalten oder nicht ?
Eine eigene Frage?
Dieser Thread ist über 9 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.