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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.