Binärcode wird nicht richtig erkannt

OP #3647955
Lesenswert?

Hallo zusammen :)
Ich habe ein Problem bei folgender Schaltung.
Das Programm soll den Zahlenwert des DTMF am Display ausgeben.
Wenn ich dem DTMF-Decoder eine 8 oder 9 signalisiere, wird diese nicht 
auf dem Display angezeigt, er bleibt beim vorherigen Wert. Das Programm 
sollte eigendlich fehlerfrei sein. Wenn ich jedoch an PortC4 ein 
Messgerät anschließe (es reicht schon wenn ich nur einen Messfühler dran 
halte, üblicherweise messe ich dann gegen Masse, Ergebnis = 0) wird der 
richtige Wert angezeigt. Es werden die richtigen Werte vom Decoder 
ausgegeben.
Ich wäre dankbar wenn ihr mir helfen könntet.
1
#include <avr/io.h>
2
#define  F_CPU 3686400UL
3
#include <util/delay.h>
4
#include <avr/interrupt.h>
5
#include <stdbool.h>
6

7
uint8_t segcodeB[10];
8
bool segcodeD[10];
9
  uint8_t temp = 0;
10
int main(void)
11
{
12
  //welche Zahl welche leuchtenden Segmente
13
  //      = 0b00gfedcb
14
  segcodeB[0] = 0b00011111;
15
  segcodeB[1] = 0b00000011;
16
  segcodeB[2] = 0b00101101;
17
  segcodeB[3] = 0b00100111;
18
  segcodeB[4] = 0b00110011;
19
  segcodeB[5] = 0b00110110;
20
  segcodeB[6] = 0b00111110;
21
  segcodeB[7] = 0b00000011;
22
  segcodeB[8] = 0b00111111;
23
  segcodeB[9] = 0b00110111;
24
      //  = a
25
  segcodeD[0] = 1;
26
  segcodeD[1] = 0;
27
  segcodeD[2] = 1;
28
  segcodeD[3] = 1;
29
  segcodeD[4] = 0;
30
  segcodeD[5] = 1;
31
  segcodeD[6] = 1;
32
  segcodeD[7] = 1;
33
  segcodeD[8] = 1;
34
  segcodeD[9] = 1;
35
  //4 7seg Displays ansteuerbar machen + Element A
36
  DDRD &=~(1<<PD3)|(1<<PD4)|(1<<PD5)|(1<<PD6)|(1<<PD7);
37
        //Elemente b-g ansteuerbar machen
38
  DDRB &=~(1<<PB0)|(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB4)|(1<<PB5);
39
  PORTD|=(1<<PD2);
40
  PORTC |=(1<<PC0)|(1<<PC1)|(1<<PC2)|(1<<PC3);
41
  MCUCR=0b00000011;
42
  GICR=0b01000000;
43
  sei();
44

45
    while(1)
46
    {
47
  temp = PINC;
48
    if (temp<10)
49
    {
50
  PORTD=(1<<PD3)|(segcodeD[temp]<<PD7);
51
  PORTB=segcodeB[temp];
52
    }
53
    else
54
    {
55
    }
56
    }
57

58
}
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren