DFC77 ISR-Problem

Gast #2535281
Lesenswert?

Hallo,
ich versuche gerade eine Funkuhr zu bauen und experimentiere ein 
bisschen mit dem DCF77-Modul von Conrad rum.

Wenn ich den benutzten ATMega8 mit folgendem Programm einsetzte, blinkt 
die Diode an PB0 im Sekundenrhythmus so wie sie soll (Empfangsmodul ist 
an PB1):

#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdint.h>


int main()
{

  DDRB   = (1<<PB0);
  PORTB = (1<<PB1);
  int8_t i=1;
  uint8_t t=0;

while(1)
{
  /*if(bit_is_set (PINB, PINB1)) PORTB |= (1<<PB0);
  else PORTB &=~ (1<<PB0);*/


  if(bit_is_set (PINB, PINB1) && i)
  {
    if(t) {PORTB |= (1<<PB0); t=0;}
    else  {PORTB &=~ (1<<PB0); t=1;}

    i = 0;
  }

  if(bit_is_clear (PINB, PINB1)) i=1;
}

  return 0;
}

Wenn ich jedoch möchte, dass Empfangsmodul eine ISR auslöst, 
funktioniert das nicht, wenn ich jedoch einen Finger an den PIN PD2 
halte fängt die Diode an zu leuchten, wie sie soll (Empfangsmodul an 
PD2, Diode an PC4):

#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
#include <avr/interrupt.h>
#include <avr/io.h>

volatile uint8_t t=0;

ISR(INT0_vect) {

    t=1;
    }

int main(void)
{

  //externer Interrupt
  MCUCR = (1<<ISC01) | (1<<ISC00);
  GICR |= (1<<INT0);

  sei();
  DDRC = (1<<PC4);

  while(1)
  {
    if(t==1)
    {
      PORTC |= (1<<PC4);
    }
  }
  return(0);
}

Und in beiden Fällen habe ich direkt den Ausgang des Empfangsmoduls am 
µC angeschlossen ohne zusätzlichen Widerstände oder so.
Ich verstehe nicht warum das Signal im oberen Code erkannt wird und im 
unteren nicht.
Ich hoffe mir kann jemand helfen.

Gruß
Andy

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