www.mikrocontroller.net

Forum: Projekte & Code FS20 Sender mit ATmega für Dimmer und Heizungsregeler


Autor: Christian Lutze (quadratqualle)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

mit diesem Quelltext ist es möglich FS20 Komponente mit Hilfe eines 
Atmegas und dem FS20 Sender "HF-Sendemodul TX868-75" anzusteueren.
Es gibt nur noch ein Problem bei den Timings um den Heizungsregler 
anzusteuern, da dieser nur alle 2 Minuten für ein paar Millisekunden 
aktiv ist und genau dann der Befehl für die Ventilstellung annimmt. Das 
Stellen funktioniert zwar schon, allerdings geht der Heizungsregler nach 
ein paar Minuten in die Notabschaltung, weil er keine Befehle mehr 
empfängt.
Sobald ich die Syncronisation des Heizungsreglers hinbekommen habe, 
werde ich es updaten. Vielleicht hat das auch schon jemand von euch 
gemacht.
Ich wäre für jeden Hilfe, in der Hinsicht, dankbar.
Wenn noch was unklar ist fragt.

mfg Christian

Autor: Denny S. (nightstorm99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ein kurzes Beispiel wäre nicht schlecht!

Gruß Denny

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was für ein Beispiel meinst du? Wie man das ganze verwendet oder den 
Aufbau?

Autor: Denny S. (nightstorm99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Verwendung!
(bin nicht gerade der C-Profi :-( )


Gruß

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Damit kannst du mit Hilfe des TX868
http://www.elv.de/output/controller.aspx?cid=74&de...
und einem Atmega zum Beipsiel den Dimmer von ELV
http://www.elv.de/output/controller.aspx?cid=74&de...
oder den Heizumngsregler
http://www.elv.de/output/controller.aspx?cid=74&de...
ansteuern.
Ich lass zum Beispiel meinen Atmega die komplette Raumsteurung 
übernehmen. Also er regelt zum Beispiel die von mir eingestellt 
Temperatur im Raum oder kann meine Lampen dimmen oder weckt mich zu 
einer eingestellten Zeit. Da wird dann zum Beispiel früh die 
Kaffemaschine angemacht und mein Rechner wird schon hochgefahren . Das 
ganze wird dann vom Mediaportal auf meinem HTPC gesteuert (hab nen 
plugin dafür geschrieben).
ICh hoffe du hast jetzt nen Bild davon.

Autor: Denny S. (nightstorm99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Hast du auch ein kleines Codebeispiel, wie man das ganze einbindet?
Kann man damit auch die ganz normalen FS20 Steckdosen steuern?


Hatte das auch so ungefär vor wie du, habe aber bis jetzt immer in
Bascom programmiert und da komme ich an einige stellen nicht weiter und
habe deswegen jetzt angefangen alles in C zu schreiben.

Gruß Denny

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja die kannst du damit auch ansteuern einfach. Genau wie die Dimmer. 
Einfach erst anlernen und dann über die An-Aus Befehle schalten.
Hier ein Codebeispiel. Der ATmega16 bekommt seine Befehle über die USART 
Schittstelle.
ISR (USART_RXC_vect)
{
  unsigned char rx_daten;
  rx_daten = UDR;
  _delay_ms(50);
  if(rx_daten==1)
  {
      print("Heizung anlernen");
      Heizung_code_senden(0x00,0x2F00);
      Heizung_code_senden(0x00,0x2F00);

  }
  if(rx_daten==2)
  {
      print("Heizung stellen auf 0");
      Heizung_code_senden(0x00,0xA600);
      Heizung_code_senden(0x00,0xA600);

  }
  if(rx_daten==3)
  {
// damit lassen sich auch die stekcdosen steuern
// zum anlernen einfach An oder Aus senden  
// und auf die Adressen vergabe achten
    print("Licht an");
      Dimmer_code_senden(0x01,0x10);
      Dimmer_code_senden(0x01,0x10);
      Dimmer_code_senden(0x01,0x10);
  }
  if(rx_daten==4)
  {
      print("Licht aus");
      Dimmer_code_senden(0x01,0x00);
      Dimmer_code_senden(0x01,0x00);
      Dimmer_code_senden(0x01,0x00);
  }
}

Für die Steckdosen hab ich übrigens einfach Funk-Steckdosenset 2605
von Pollin genommen und hab die fernbedienung an den Atmega 
angeschlossen. Kostet nämlich nur 10euro ;)

mfg Christian

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte es denn sein, daß die Heizungssteller solange sie noch 
unsynchronisiert sind, bis zu einem Timeout einfach auf das Signal der 
Steuerung horchen ? Solange kein Sync vorhanden also mehr als nur die 
paar Millisekunden.

Falls mehrere Steller zueinander unsynchronisiert sind, so würde das ein 
Timeout von knapp 4 Minuten ergeben.

Wenn diese Erstsynchronisation stattgefunden hat, dann horchen die 
Steller im Zeitfenster der von Dir beschriebenen paar Millisekunden 
wieder auf ein Signal, evtl. auch ein zweites Mal nach erneuten 2 
Minuten, damit nicht eine einzelne Funkstörung zum Ausfall führt. Kommt 
dann immer noch kein gültiges Signal, gehen sie auf Störung.

Der Steller besitzt einen Uhrenquarz. Das bedeutet sobald einmal 
synchronisiert wurde, ist das nötige Fenster der Datenübertragung sehr 
klein. Wird offensichtlich gemacht, um den Stromverbrauch vor allem 
durch den Empfängerbaustein gering zu halten

Und damit Du diese Fenster erwischt, musst Du einfach nur die exakte 
Zeit zwischen zwei Signalen einhalten und sie mit Deiner Steuerung 
senden.

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja genau aber die Zeit konnte ich leider noch nicht genau bestimme. Hast 
du vielleicht ne Idee wie ich das genau bestimmen könnte?

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja klar, wenn Du keinen LA hast der den Zeitbereich loggen kann, dann 
programmier Dir ein kleines Tool auf 'nem Atmel mit einem genau genug 
aufgelösten Timer.

Den Start/Stop Eingang des Timers hängst Du an Pin 29, P6.0/KS0 des ELV 
Stellers, vor den Transistor, der den Empfänger aufsteuert.

Nimm das Ganze dann normal in Betrieb.

Der Ausgang wird immer im richtigen Zyklus aktiv, wenn Du dann den 
Timerwert über die Serielle ausliest, hast Du was Du brauchst.

Autor: Christian Lutze (quadratqualle)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier noch als Nachtrag die Schaltung.

@MES danke für den Tipp ich werd es mal versuchen. Würdest du da den 
16bit Timer nehmen? Und mein Problem is noch das ich selbst mit dem 
Vorteiler 1024 nicht auf 2 Minuten komme.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich reicht Dir da ein 16Bit Zähler nicht aus, aber Du kannst den 
Zähler per OVFL ISR beliebig erweitern, so dass Du sowohl Auflösung, als 
auch Zeitbereich bekommst.

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab jetzt 14 Durchläufe
und danach ist TIMSK
0x5368 oder 0x536A oder 0x5363
schwank also. Ich benutze den internen 8Mhz Quarz können es daran 
liegen?

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der interne RC Oszillator ist nicht sehr genau, ob der soviel abweicht 
kann ich nicht sagen. Die Abweichung laut Deinen Angaben ist ca. 0.8mS.
Falls Du nicht irgendetwas Merkwürdiges misst, denn ich hoffe das mit 
TIMSK ist nicht Dein Ernst :D

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach verdammt ich meinte den TCNT1 :D

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Evtl. wirst Du auf einen Atmel umsteigen müssen, an den Du einen 
Uhrenquarz ranflanschen kannst. Nicht umsonst ist so einer im Steller 
drin.

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habs jetzt mal mit nem atmega8 und nem externen 3.6864 Mhz Quarz getest. 
Jetzt komm ich immer genau auf 6 Durchläufe und am ende hat TCNT1 den 
Wert
0x584A. Den Uhrenquarz kann ich doch irgendwie an den Timer hängen oder? 
Weißt du zufälligerweise an welche Pins der muss und wie ich die 
Register setzen muss?

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also der Sender sendet alle 115,5 Sekunden

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann bist Du ja schon einen Schritt weiter.

Der Uhrenquarz wird verwendet, da er genauer abgeglichen ist und 
außerdem bei der Frequenz 32768Hz einen geringeren Stromverbrauch hat. 
Für Geräte die nur ab und zu aktiv werden. So wie der Steller.

Ich kann mir vorstellen, daß die Zeit von einer zur nächsten 
Synchronisierung auch mit dem 3.6 MHz Quarz ausreichend genau bestimmt 
werden kann.

Ob Du den Uhrenquarz brauchst kommt drauf an, was Dein Ziel ist, und wie 
oft der PC über die serielle Schnittstelle die Zeit korrigieren kann.

Soll das Gerät autonom agieren können, wäre es sinnvoll ein ausreichend 
exaktes Zeitnormal drin zu haben.

Du kannst nicht an jeden Atmel einen zweiten Quarz anschließen, 
verwendest Du z.B. den Mega32, dann geht das. Der hat einen RTC, Real 
Time Counter.

Der kann auch im Power-Save Modus weiterarbeiten und macht damit ein 
batteriebetriebenes Gerät möglich.

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab den Atmega 16, dann muss ich den Quarz an Tosc1 und  machen 
oder? Brauch ich dann noch 2 Kondensatoren oder kann man intern 
irgendwelche aktivieren?

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, beim ATMega16 musst Du den Quarz zwischen TOSC1/TOSC2 Pin 28/29 
anschließen. Ohne Kondensatoren.

Timer2 wird dann zum RTC, AS2 im ASSR Register für asynchronen Mode 
setzen. Datenblatt Seite 135.

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok vielen DANK ich werd es morgen gleich probieren. Jetzt hab ich nur 
noch das Problem das ich noch nich weiß wie ich am genausten auf 115,5 
sekunden komme mit den Uhrenquarz.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Prescaler 1024, OVFL ISR aufsetzen, darin einen Zähler hochzählen, bei 
32 ist eine Sekunde vergangen, bei 16 eine Halbe. Hier würde es sich 
anbieten jede halbe Sekunde einen Zähler hochzuzählen. Wenn der den Wert 
231 erreicht hat, sind 115,5 Sekunden rum.

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stimmt danke ;)

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oops, gerade gemerkt, daß ich mich bei Prescaler und der Rechnung dazu 
vertan habe.

Der Timer2 läuft nur bei Prescaler 64 jede halbe Sekunde über. Damit 
dann den 155,5 Sekunden Zähler hochzählen.

Alternativ kannst Du eine COMP ISR mit größerem Prescaler in Verbindung 
mit CTC aufsetzen. Hätte den Vorteil, daß für Batteriebetrieb das 
Aufwecken aus dem Sleep variabel gestaltet werden kann. Das spart Strom.

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
WIeso mit dem Prescaler bei 1024 stimmt es doch.
1/32678*1024*16=0,5 sekunden oder täusch ich mich da gerade?

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach verdammt ich hab die Zahlen verdreht du hast recht

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JA!!! Also bis jetzt geht alles mal schaun ob es syncron bleibt. Danke 
nochmal für alles.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super. Gern geschehen.

Ich glaube nicht, daß die Synchronisierung absolut über die Uhrzeit 
geschieht, denn dann könnte sich auch unter günstigen Umständen ein 
Fehler aufgrund Quarztoleranzen einschleichen.

Deshalb denke ich, daß nach jeder erfolgreichen Übertragung die 
Synchronisierung neu erfolgt, d.h. die Heizungssteller ihren Timer neu 
starten.

Die Abweichung des Uhrenquarzes während 115 Sekunden ist minimal, und es 
kann sich damit kein Fehler aufsummieren.

Du hast die Zeit dafür raus, wenn's über ein paar Minuten läuft, sollte 
es auch auf Dauer funktionieren. Kannst ja über Deine Erfahrungen 
berichten und den Code hier reinstellen.

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ALso ich habs jetzt mehrer Stunden getest und bis jetzt ist er nicht in 
die Notabschaltung gegangen und er lässt sich verstellen. Hier mein 
Code, ich sende den Atmega über die usart Schnittstelle die befehle. Der 
Rest ist fast selbst erklärend.
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include "global.h"
#include "uartsend.h"
#include "i2cmaster.h"
#include "FS20.h"

#define F_CPU 8000000UL
#include <util/delay.h>

unsigned char timer_position;
unsigned int letzter_befehl;


// ITimer2 überlauf nach 0,5 Sekunden 115,5s/0,5 = 231

ISR (TIMER2_OVF_vect) 
{
TCNT2= 0;
timer_position++;
if (timer_position==231) 
{
  TCNT2= 0;
        //zuletzt gesendeter Befehle wird wieder geschickt
  Heizung_code_senden(0x00,letzter_befehl);
  Heizung_code_senden(0x00,letzter_befehl);
  timer_position=0;
  print("senden");
}
}

//ISR (USART_RXC_vect)
void uart_empfangen()
{
    //sei();
  unsigned char rx_daten;
  rx_daten = UDR;
  _delay_ms(50);
  switch(rx_daten)
  {
  case 1:steckdose1_an();break;
  case 2:steckdose1_aus();break;
  case 3:steckdose2_an();break;
  case 4:steckdose2_aus();break;
  case 5:steckdose4_an();break;
  case 6:steckdose4_aus();break;
  case 7:Alarmzeit();break;
  case 8:Heizung_stellen();break;
  case 9:
  {
      print("lernen");
      Heizung_code_senden(0x00,0x2F00);
      Heizung_code_senden(0x00,0x2F00);
      letzter_befehl=0xA600;
      _delay_ms(4000);
      timer_position=0;
      TCNT2= 0;
      Heizung_code_senden(0x00,letzter_befehl);
      Heizung_code_senden(0x00,letzter_befehl);
  }break;
  case 10:
  {
      print("Licht an");
      Dimmer_code_senden(0x00,0x10);
      Dimmer_code_senden(0x00,0x10);
      Dimmer_code_senden(0x00,0x10);
  }break;
  case 11:
  {
      print("Licht aus");
      Dimmer_code_senden(0x00,0x00);
      Dimmer_code_senden(0x00,0x00);
      Dimmer_code_senden(0x00,0x00);
  }break;
  default:;
  }
}

int main(void)
{
  initUART();
  steckdoseninit();
  i2c_init();  
  //Heizung_init();
  timer_position=0;
  //timer einstellungen
  TIMSK= 0b01000000;
  TCCR2= 0b00000100;
  ASSR=0b00001000;

  print("Init fertig");
  TCNT2= 0;
  sei();

  for (;;)
  {
    if(UCSRA&(1<<RXC)) uart_empfangen();
    //Wert wird von Ehctzeit Uhr gelesen, hat aber nix mit dem Timer für den Heizungsregler zutun 
               read_clock();
  }
}


void read_clock()
{
  i2c_start(adresse+I2C_WRITE);
  i2c_write(0x00);
  i2c_rep_start(adresse+I2C_READ);
        sekunde = i2c_readAck();     
  minute = i2c_readAck();
  stunde = i2c_readNak(); 
  // hier kann dann später auch das datum mit ausgelesen werden   
  stunde= (((stunde>>4) & 0x03)*10)+ (stunde & 0x0F); 
  minute= (((minute>>4) & 0x07)*10)+ (minute & 0x0F); 
  sekunde= (((sekunde>>4) & 0x07)*10)+ (sekunde & 0x0F); 
    i2c_stop();    
}

void Alarmzeit()
{
  alarmstunde = uart_getc();
  asm("nop");
  asm("nop");
  asm("nop");
  alarmminute =  uart_getc();

}


uint8_t uart_getc(void)
{
    while (!(UCSRA & (1<<RXC))) ;  // warten bis Zeichen verfuegbar
    return UDR;                   // Zeichen aus UDR an Aufrufer zurueckgeben
}


void Heizung_stellen()
{
   unsigned char wert;
   wert=uart_getc();
  letzter_befehl=0xA600+wert;
}


Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den Code, freut mich daß er geht.

Ich hab' momentan nur Einige der FS20 Funkschaltdosen im Einsatz, sind 
von guter Qualität und Reichweite. Nur der Funk Timer den ich letzthin 
bestellt habe, war schon mal aus der Schachtel kaputt. Endkontrolle 
findet leider beim Kunden statt. Ging aber nach Einlöten eines neuen 
Uhrenquarzes wie er sollte.

Den Code den Du geschrieben hast, kann man immer brauchen. Wobei ich 
Bascom mit Assembler bevorzuge. C kann ich lesen als auch schreiben, 
brauch' nur länger dafür, da ich wenig Übung drin habe.

Wie ich sehe, hast Du einen Echtzeituhr über I2C dran. Die hättest Du 
übrigens auch über sleep / power save und dem asynchronen Timer2 direkt 
im Mega16 realisieren können.

Geht recht gut, Stromverbrauch ist auch gering, da man den µC nur 
aufweckt, wenn man die Sekunde updated. Wenn man Timer2 und Prescaler 
ausnutzt, muss man nur alle 8 Sekunden aufwecken.

Und nach 115 Sekunden muss der µC sowieso aktiv werden, damit der 
Heizungssteller zufrieden ist.

Autor: Ein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe oben in der Beschreibung gelesen, dass du Pollin Funksteckdosen 
"auch" damit ansteuerst.

Hast du auch dafür eine Anleitung/Program?

Es kann also FS20, FHT und Dimmer auf FS20-Basis.

Die Pollin-Geschichte hat ja ein ganz anderes Datenformat, hast du es 
nachgebildet? Mit Dimmer-Funktion.

Autor: Christian Lutze (quadratqualle)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja hab ich auch. Hier ist der Code und der Verweis auf die Seit mit 
dessen Hilfe ich das zusammen gesetzt hab. Sind bis jetzt nur 3 
Steckdosen, wird aber diese Woche um 3 weiter erweitert. Du musst nur 
auf die Adresse achten die du dann bei den Steckdosen einstellst.
http://avr.börke.de/Funksteckdosen.htm
Ich hoffe es Hilft dir.

@MWS das mit der Echtzeituhr war damals nur mein erster Schritt, damit 
ich zu einer bestimmten Uhrzeit geweckt wurde. Ich wusste ja vor ein 
paar Tagen noch nich das man an den Atmega16 noch nen Uhrquarz 
dranhängen kann. Danke nochmal;)

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ja es kann zurzeit FHT und die Dimmer, aber es lässt sich denk ich 
mal mit allen Dingen aus der FS20 Serie erweitern. FS20 Funksteckdosen 
gehen damit auch, weil sie fast genau so wie die Dimmer arbeiten

Autor: Denny S. (nightstorm99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

@Christian Lutze

Könnte man über den Timer auch mehrere FHT ansteuern in 
unterschiedlichen Räumen?
Es gibt ja ein Modul von ELV was 4 Stück ansteuern kann, aber das is 
doof.


Danke
Gruß Denny

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo klar

man muss nur noch neue "timer_position" und "Stellungs" Variablen 
einführen damit jedem empfänger ca. alle 2 min seine stellung gesendet 
wird.

Autor: Denny S. (nightstorm99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

So der FHT quittiert schon mal den Empfang mit einem Pips!
Nun will ich noch die 115,2 sek über Timer 1 realisieren,
wie mache ich das?
Mein Quarz ist ein 20MhZ!

Habe jetzt schon ewig hier hin und her gerechnet, aber auf 0,5 sek für 
den Timer1 komme ich!
Ja und ich habe das Tuturial gelesen!

Gruß Denny

Autor: Jochen B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ist zwar nicht ganz genau:
http://www.avr-praxis.de/forum/attachment.php?atta...

Gruß jochen

PS. Kannst du den Code mal anhängen?

Autor: Denny S. (nightstorm99)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Hat sich zufällig noch jemand von euch mit den FHT8 Stellantrieben 
beschäftigt?
Ich messe bei mir immer ein Zeitfenster zum Empfangen von 118 sek!
Nun sende ich auch alle 118 sek und das scheint ganz gut zu passen.

Gruß Denny

Autor: Christian Lutze (quadratqualle)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also bei mir sind es 115,5 Sekunden. Und das ganze realisiere ich mit 
dem Timer2 und einen externen Uhrenquarz, damit kannst du den Timer so 
einstellen das bei eienm Überlauf genau 0,5s vorbei sind.

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.