Moin,
ich habe folgendes Problem:
ich möchte mithilfe meines AtTiny2313 einen Duty-Cycle auswerten. Der
Cycle kommt von diesem Temperatursensor:
http://www.me.mcut.edu.tw/%2Fself_store%2F5%2Fself_attach%2FDS_SMT16030.pdf
Da ich recht frisch auf dem Gebiet bin, haben mir auch andere
Forenbeiträge leider nicht geholfen...
Im Prinzip gibts glaube ich 2 Möglichkeiten: eine Schleife, die
Hochzählt, solange der PIN HIGH ist.
Die zweite funktioniert wohl mit dem internen Timer und ist wesentlich
"sauberer" programmiert.
Hier meine Idee zur Schleife:
1 | DDRD = 0b11100111; //Pin 4 als Eingang(Sensor)
|
2 | PORTD = 0b11111111;
|
3 |
|
4 | main(){
|
5 |
|
6 | int time = 0; //Zeitvariable
|
7 | while(1){
|
8 |
|
9 | while(bit_is_set(PIND, 4)){
|
10 | time++;
|
11 | if(time>9999){
|
12 | time = 0;
|
13 | }
|
14 |
|
15 | //Variable time ausgeben (Funktioniert)
|
16 | }
|
17 | }
|
Was passiert ist, dass die Ausgabe immer Mist ist, z.B. die Zahl 0411.
Resette ist den AtTiny, kommt wieder 0411.
Danke für eure Hilfe!