www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DCF Signal an INT1 von Atmega32 Problem


Autor: derheld2k1 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe schon sämtliche relevante Beiträge gelesen, aber es war nichts 
dabei was mir weiterhelfen hätte können...

Nun zu meinem Problem:
Ich habe das reichelt DCF Modul an den INT1 Eingang gehängt und den 
Interrupt so eingestellt, dass er bei steigender Flanke auslöst.
Ich habe in die ISR einen einfachen Pintoggle reingeschrieben um zu 
überprüfen ob die Interrupts so kommen wie ich mir das vorstelle..
Wenn ich das Programm nun laufen lasse, sehe ich auf dem Oszi, dass der 
Interupt manchmal nicht , manchmal doppelt und meistens normal ausgelöst 
wird.

Die blaue Kurve ist das DCF Signal, gelb ist der Pintoggle. (Bild im 
Anhang)
Das DCF Modul hängt ohne Pullup und ohne serienwiderstand am INT1. (mit 
Pullup getesten, auch keine Besserung)

Hat jemand eine Idee, an was das liegt oder noch besser einen Vorschlag 
wie das Problem beseitigt werden kann.

mfg, Alex

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dehne doch das Signal in der Zeitachse etwas und schau nach, ob Du 
irgendwelche Spikes entdeckst.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich schon getan... der Screenshot ist nur zum Überblick so 
gewählt worden.. das Signal prellt nicht und auch keine Spikes..

mfg

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zeig doch mal Deinen Code.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier der Code von der ISR:
ISR(INT1_vect)
{

  if(ms_counter == 0)
  {
    PORTA |= (1 << PA3);    //switch off backlight


    ms_counter++;
  }
  else if(ms_counter==1)
  {
    PORTA &= ~(1 << PA3);    //switch on backlight

    ms_counter = 0;
        }
}

und hier der Teil aus der main der den Interrupt initialisiert:
/*setup external interrupt 1 for dcf sync*/
  MCUCR |= (1<<ISC10) | (1<<ISC11);  //rising edge
  GICR |= (1<<INT1);

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
probier doch mal

ISR(INT1_vect)
{
    PORTA ^= (1 << PA3);    //toggle backlight
}

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie ist  ms_counter deklariert?

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
leider selbes Verhalten

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int ms_counter;

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
volatile int ms_counter;

(volatile char täte auch reichen)

Autor: Alex K. (derheld2k1)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
immer noch selbes verhalten.. auch mit char
hier nochmal n screenshot, da dieser Effekt bei dem anderen nicht 
dargestellt ist

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ähnlichen Ärger schon mit dem Pollin-DCF gehabt. Da kam während 
der negativen Flanke nochmal ganz kurz ein Ausreisser nach oben, der mir 
einen erneuten Interrupt ausgelöst hat.

War schwer zu finden, da wirklich sehr kurz.

Du solltest das Signal etwas genauer untersuchen - ordentlich in die 
Länge dehnen und die fallende Flanke ansehen.

Autor: Besserwisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich finde die 1. Version von Dude besser. Keine Variable und das 
Ganze geht viel schneller.
ISR(INT1_vect)
{
    PORTA ^= (1 << PA3);    //toggle backlight
}

Falls PORTA noch irgendwo anders benutzt wird könnte Dir das natürlich 
noch reinfunken. Also Code am besten auf den INT und eine Endlosschleife 
reduzieren.

Autor: Alex K. (derheld2k1)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
die fallenden Flanken sind sauber..
hier ein Shot, bei dem der Fehler auftritt

Autor: Alex K. (derheld2k1)
Datum:
Angehängte Dateien:
  • preview image for ok.png
    ok.png
    2,21 KB, 185 Downloads

Bewertung
0 lesenswert
nicht lesenswert
... und hier wärs in ordnung

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Evtl. sind dann die Portpins nicht richtig konfiguriert?

wie schaut die main aus?

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@besserwisser: ok.. erstell eben n neues projekt.. dauert kurz

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
/*includes*/
#include "startup.h"
#include "globals.h"
#include <avr/io.h>      //standart IO functions
#include <avr/interrupt.h>  //interrupt functions


/*beginn of main*/
int main(void)
{
  //initialize pins on PORTA and LCD_PORT
  PORTA = 0b00010000;    //Pin 0-7 to low, except pin 4
  DDRA = 0b11111111;    //Pin 0-2 as output (SCK, RCK, SER)
              //Pin 4-7 as output (display_on_off, RS, R/W, E)
  PORTB = 0b00000000;    //Pin 0-7 to low
  DDRB = 0b11111111;     //Pin 0-7 as output (DB0 - DB7)

  DDRD = 0x00;      //input to switch on/off backlight of lcd and dcf signal
  //PORTD |= (1<<PD3);     internen Pull-Up an PC7 aktivieren 

  
  /*setup the timer0 & 1*/
  cli();          //interrupts disabled
  setup_timer0();
  setup_timer1();
  sei();          //global interrupts enabled

  /*setup external interrupt 0 for display switch*/
  MCUCR |= (1<<ISC00) | (1<<ISC01);  //rising edge
  GICR |= (1<<INT0);
  
  /*setup external interrupt 1 for dcf sync*/
  MCUCR |= (1<<ISC10) | (1<<ISC11);  //rising edge
  GICR |= (1<<INT1);          //enable external int request 0

  /*initialize lcd*/
  int i;
  for(i=0; i<3000; i++)   //wait 150ms for display to be ready
      asmdelay50();
  lcd_init();

  /*initialize global variables*/
  time = 0;
  
  while(1)
  {
    /*calculate bitpattern for shiftregisters*/
    generate_outarray();

    /*output the bitpattern to the shiftregisters*/
    led_out();

    /*output the time to the lcd if enabled via switch*/
    if(lcd_switch==0)
      lcd_out();
  }
 
  return(0);  //never reached
}
/*end of main*/



/*additional functions for use with main function*/
/*-----------------------------------------------------------------------
/ functionname: setup timer1()
/ behaviour:  setups the timer1 module with following attributes:
/        -timebase 1 second (prescaler 1024, compare value 15625)
/        -generate interrupts if compare match A
        -no PWM, normal operation
/----------------------------------------------------------------------*/
void setup_timer1()
{
  TCCR1B |= (1<<CS10) | (1<<CS12);    //clock prescaler set to 1024
  OCR1A = 0x3D09;            //compare value set to 15625
  TIMSK |= (1<<OCIE1A);        //enable compare match interrupt with compare value A
}


/*-----------------------------------------------------------------------
/ functionname: setup timer1()
/ behaviour:  setups the timer1 module with following attributes:
/        -timebase 1 second (prescaler 1024, compare value 15625)
/        -generate interrupts if compare match A
        -no PWM, normal operation
/----------------------------------------------------------------------*/
void setup_timer0()
{
  TCCR0 |= (1<<CS00) | (1<<CS02);    //clock prescaler set to 1024
  OCR0 = 0x9C;            //compare value set to 156
//  TIMSK |= (1<<OCIE0);        //enable compare match interrupt timer0
}

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@besserwisser:

hi hab des jez so gemacht, aber immer noch identisches verhalten,
hier der Code der übrigblieb:
#include <avr/io.h>      //standart IO functions
#include <avr/interrupt.h>  //interrupt functions


/*beginn of main*/
int main(void)
{
  PORTA = 0b00010000;    //Pin 0-7 to low, except pin 4
  DDRA = 0b11111111;    //Pin 0-2 as output (SCK, RCK, SER)

  DDRD = 0x00;      //input to switch on/off backlight of lcd and dcf signal
  
  sei();          //global interrupts enabled
  
  /*setup external interrupt 1 for dcf sync*/
  MCUCR |= (1<<ISC10) | (1<<ISC11);  //rising edge
  GICR |= (1<<INT1);          //enable external int request 0
  
  while(1){}
  
 
  return(0);  //never reached
}


ISR(INT1_vect)
{

  PORTA ^= (1 << PA3);
          
}


Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schaut eigentlich gut aus...seltsam...

Was verwendest Du als Speisespannung?

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
5V aus nem 7805 ohne S,L oder sonstwas ;)
natürlich mit diversen C's davor und dahinter gegen masse

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du noch einen anderen mega32 zum Testen? Glaub ja nicht, dass der 
hin ist, aber wer weiss...

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
leider nicht griffbereit.. aber das kann ich bis morgen ändern...
ich test mal noch kurz wies beim INT0 ausschaut...

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was mir auch suspekt erscheint...auf dem Oszillogramm von  18:48 
wechseln beide Signale exakt gleichzeitig den Pegel. Woher kommt das?

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hängt eine fette Last an PA3? Mach den mal unbelastet.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das mit dem gleichzeitigen Signalwechsel kann ich mir auch nicht 
erklären...
manchmal springt er auch bei fallender flanke in die isr, manchmal 
"übersieht" er ne steigende...

der Test mit INT0 und dem abgespecktem Code zeigt auch wieder das selbe 
Verhalten.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
an PA3 hängt aussschließlich das Oszi dran

Autor: Analog (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier es mal mit einem Pulldown 10k-100k an der INT-Leitung. 
Alertantiv einen Tiefpass-Kondensator. Ich vermute auch Spikes. Wie hoch 
ist die Abtastrate Deines Oszis ?? Vielleicht kann es diese Spikes nicht 
mitschneiden. Außerdem kannst Du auch noch den Takt vom Atmega mal ganz 
runter setzen auf 1MHz, dann ist der Interrupt vielleicht zu träge für 
die Spikes  und es passiert nicht mehr.

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du einen Rechteckgenerator? Da kannst schon mal den DCF als 
Fehlerquelle ausschliessen.

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pulldown und Tiefpass geht nicht, da der DCF nur einige uA treiben kann.

Autor: Analog (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit dem Takt ist nur als Nachweis gemeint. Ich wollte das nicht als 
Lösung für das Problem vorschlagen. Wenn es Störungen gibt, dann 
brauchst Du ein Filter.

Autor: Besserwisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tja, der abgespeckte Code sieht eigentlich gut aus. Sehe jedenfalls 
keine Fehlermöglichkeiten.

Das das Signal teilweise zu identischen Zeiten wechselt ist merkwürdig.
Ist das selbstgelötet? Vielleicht hast Du da aus Versehen einen Schluss 
gemacht, der ein wenig halblebig ist und deswegen, wenn Du am Tisch oder 
sonstwo wackelst auch mal einen INT auslöst wenn keiner sein sollte.

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe meine Störungen beim Pollin-Modul softwaremässig erschlagen.

Aber dazu muss man erst mal genau wissen, was los ist.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@dude: rechteckgenerator ist auch erst morgen verfügbar
@analog: 10k pulldown drück das signal soweit, dass INT0 gar nicht mehr 
reagiert; samplingrate ist nicht berauschend.. is n 500 euro DSO.. 2,5 
KS / s ;AVR runtertakten is keine gute idee, weil der doch noch einiges 
zu verarbeiten bekommt..

Autor: Besserwisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Alexander
Hast Du mal nach nem Schluss geguckt?
Tut mir, aber ich bin echt gespannt, ob es das ist.

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stell den Interrupt doch mal auf fallende Flanken und schau, was er da 
macht.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@besserwisser: ist auf nem steckbrett gesteckt, rüttelt aber nix und 
sonst geht auch alles immer reibungslos damit (ints kommen auch wenn ich 
vom anderen zimmer aus rüberschau ;) )

@analog: werd morgen zum test mal den generator dranhängen

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch ein Rechteck mit dem uC selbst erzeugen OCR1A z. B. und 
ihm selbst ant INT1 einspeisen

Autor: Besserwisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> (ints kommen auch wenn ich vom anderen zimmer aus rüberschau ;) )
Mmh. Merkwürdig.
Dann ist wohl der Vorschlag von Dude im Moment am besten.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@besserwisser: 100% kein schluss
@dude: mit fallenden Flanken wieder dasselbe Verhalten; muss ich beim 
rechteckerzeugen auf irgendwas spezielles achten (habe das noch nie 
gemacht)

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann nur am DCF-Signal liegen. Alles andere ist Voodoo.

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> muss ich beim rechteckerzeugen auf irgendwas spezielles achten

Nein, eigentlich nicht. Einen Timer in CTC betreiben und den zugehörigen 
OCR-Pin toggeln und mit INT1 verbinden.

Kannst ja auch 1 Hz ca wählen, ist unkritisch.

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>AVR runtertakten is keine gute idee,

Gibt aber ein Äquivalent dazu: Den DCF77-Portpin einfach fortlaufend 
alle z. B. 10 ms (generiert von Software-Timer) sampeln.  Erschlägt Dein 
Problem aus prinzipiellem Grund, weil das Sampling wie ein Tiefpass 
wirkt.  Funktioniert bestens.  CPU-Last ist vernachlässigbar (0.01%). 
Musst Dich nur von dem Interrupt verabschieden.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich werd das DCF Modul morgen mit in die Arbeit nehmen... da stehn 
schicke Tektronix mit 2GS/s rum

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@AVRFAn: hmm wenn alles andere versagt werd ichs so machen, danke für 
den Vorschlag, allerdings will ich es schon mit dem INT0 machen

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hast Du aber nicht die gleiche HF-Umgebung wie zuhause. Wenn Du mit 
dem schicken Teil nichts findest, heisst das gar nichts.

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
derheld2k1 wrote:
> Hallo zusammen,
>
> Nun zu meinem Problem:
> Ich habe das reichelt DCF Modul an den INT1 Eingang gehängt und den
> Interrupt so eingestellt, dass er bei steigender Flanke auslöst.

Es ist üblich, dass DCF-Empfang gestört wird, etwa durch

-- Monitor, PC, ...
-- Wetterlage
-- Schaltnetzteil
-- µC in unmittelbarer Nähe
-- Atombomben
-- weiss der Teufel

DCF an einen INT-Port zu hängen ist keine so tolle Idee, weil

1) verbraucht das nen wertvollen INT-Port
2) das Signal wie gesagt nicht sauber ist

Stattdessen empfiehlt sich ein Vorgehen wie bei Tasterentprellung. ZB 
indem man einfach alle 10ms auf den Port schaut -- das dann aber gerne 
in einer ISR.

Danach kann man Spratzer ausbügeln, also Bitfolgen (hier gesamplet alle 
10ms) wie 0001000 ersetzen durch 000000.

Bei extrem mieser Empfangslage muss man zusätzlich über mehrere Minuten 
sammeln und Bits reparieren. Ein Voting wie "2 aus 3" ist aber nicht so 
einfach zu implementieren, weil sich die Nutzdaten ja ändern. Da 
brauch's also etwas mehr Gehirnschmalz.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@dude: bekomme das mit dem timer grad nicht auch die schnelle so 
gebacken, werds morgen mit generator machen

@johann: der empfang war anfangs extrem gestört, habe dass aber dank 
laptop statt desktop rechner und verlagern des empfängers mittels 2m 
kabel ans fenster in griff bekommen, das Signal sieht ja sehr sauber 
aufm Oszi aus.
Aber langsam bin ich auch am zweifeln ob das mit dem INT so ne gute idee 
ist.
Werd mich mal kurz hinsetzen und des Signal samplen, muss ich ja eh 
machen wenn ich die dauer von den "highs" messe um die bits zu 
bestimmen, aber das wollte ich eben dann angestossen durch den interrupt 
machen "lassen". Und gestörte Daten werf ich einfach weg, indem ich sie 
mit der aktuellen zeit vergleiche und er solls nochmal versuchen..

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Sampeln findest Du einfacher als einem Timer ein Rechteck zu 
entlocken?

Die Wege des Herrn sind oftmals unergründlich.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lol momentan ja ;)

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, im moment komm ich nicht mehr weiter.. mein hirn is einfach voll 
(häng da schon den ganzen tag dran)
hier noch die letzten zeilen code die ich zum samplen geschrieben hab, 
funktioniert aber noch nicht. der timmerinterrupt kommt jede ms, daher 
läuft das array schnell voll und nicht erst nach ner minute. Wer lust 
und laune hat des schnell auszubessern ist herzlich eingeladen. 
Ansonsten vielen Dank für die schnelle und ausführliche Hilfe, ich werde 
morgen weiter berichten.
mfg
ISR(TIMER0_COMP_vect)
{
  if(PIND & (1<<PIND3))
    dcfsignaltime++;

  else if(!(PIND & (1<<PIND3)))
  {  
    if((dcfsignaltime > 80) && (dcfsignaltime < 140))
      dcf_bit[dcf_bitcounter] = 0;

    else if((dcfsignaltime > 170) && (dcfsignaltime < 260))
      dcf_bit[dcf_bitcounter] = 1;

    dcfsignaltime = 0;
    dcf_bitcounter++;
    if(dcf_bitcounter == 57)
      dcf_bitcounter = 0;
  }
  TCNT0 = 0x0;  //reset timer count value
}


Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:
angenommen es sind doch spikes im DCF signal und ich wills doch mitn 
INT1 machen, würde es dann helfen mit RC ladekurve n schmittrigger 
anzusteuern?
eigentlich schon oder überseh ich da in meiner momentanen Verwirrtheit 
etwas?

Autor: Besserwisser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>es dann helfen mit RC ladekurve n schmittrigger anzusteuern

Ich würde sagen, es lohnt den Versuch. Das mit dem RC-Tiefpass hat ja 
auch am Anfang jemand vorgeschlagen. Grenzfrequenz kann ja sehr niedrig 
sein. Hauptsache die 100ms kommen noch durch.

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>würde es dann helfen mit RC ladekurve n schmittrigger anzusteuern?

Möglich, aber wozu extra Hardware-Aufwand treiben, wenn sich das Problem 
rein softwaremäßig in nullkommanix erschlagen lässt?  Nochmal: Dem 
Samplen haftet genau die gewünschte Tiefpass-Charakteristik an.  Was 
willst Du noch?

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>der timmerinterrupt kommt jede ms, daher läuft das array schnell voll

Tipp: 10 ms.  Ein Array ist überflüssig.  Du brauchst doch nur den 
aktuell gesampelten Wert und den Vorgängerwert, um jede Flanke 
detektieren zu können.  Eine Speicherqueue der Länge 1, d. h. eine 
simple Variable zum Zwischenspeichern des aktuellen Werts bis zum 
nächsten "Tick", reicht also. Die DCF77-Decodier-Zustandsmaschine rufst 
Du natürlich auch alle 10 ms auf. Nicht erst 200 Samples in einem Array 
sammeln und die Maschine danach 200-fache Arbeit erledigen lassen - das 
ist Nonsens.  Immer gleich jedes Sample sofort verarbeiten - das ist bei 
schnarchlahmen 10 ms kein Problem und  bzgl. des Rechenaufwands 
dasselbe, aber Du brauchst kein Array.

Autor: Alex K. (derheld2k1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo nochmal,

habe das Problem jetzt gelöst indem ich wie AVRFan geraten hat, das 
Signal zu samplen ohne Interrupt eingang. Funktioniert bestens, auch den 
Signalbeginn erkennt die software.

Vielen Dank nochmal für die schnelle Hilfestellungen.
mfg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.