Forum: Mikrocontroller und Digitale Elektronik PIC16F871 - Software f. Kicker ! Hilfe!


von Danny (Gast)


Lesenswert?

Hallo, ich baue gerade einen Kicker, die Toranzeige soll über ein LCD 
Display realisiert werden, Torzähler mit einer Lichtschranke! Es gibt 
einen Reset-Button und  2 Tasten um die Namen um zu schalten.
Ich wollte mal fragen ob man das Programm so vielleicht realisieren 
kann.
Habe noch nicht die Hardware, da müssen dann vielleicht einpaar kleine 
Anpassungen gemacht werden. Aber es geht ja um das Grundgerüst.

Danke

Info:
- LCD- Modul hat einen HD44780 Controller
- PIC16F871 (20Mhz)
- Sprache: C


// PROGRAMM BEGIN


include <C:\cc5\16F871.H>

//Speihersutz121345=aus,Debug11=aus,ProgrammFlash9=an,EEpromRead8=an,
//NiendervoltProgr7=aus
// 
NiederVoltReset6=an,EinschaltTimer3=an,WachDogTimer2=aus,Oszilator01=HC

#pragma config |= 0b.11.111101.11.00.10



#define LCD_RS    0b.00000001     //RS-Pin ist Bit0, LCD Register Select

#define LCD_CS    0b.00001000     //E-Pin ist Bit3, LCD Chip Select

#pragma char PORTQ @ PORTD        //PORT auswählen, DB7-Bit7, DB6-Bit6, 
DB5-Bit5, DB4-Bit4,

#include "delay20.c"

#include "lcd.c"

// Port D (0-7) - LCD
// Port A (0-4) - A0(TorSignal TR), A1(Torsignal TB), A2(NamensTaste 
TR), A3(NamensTaste TB), A4(Reset)


void main(void)                          // Hauptprogramm

{

// Variablen
char TZR; //Torzähler Rot
char TZB; //Torzähler Blau
char NTR; //NamensTaste Rot
char NTB; //NamensTaste Blau
char NR;  //Name von Rot
char NB;  //Name von Blau


//---------------------------------------------------------------------- 
--
//Start des Kickers
//---------------------------------------------------------------------- 
--

TZR = 0;
TZB = 0;
NTR = 0;
NTB = 0;
NR = "Rot"
NB = "Blau"


PORTB=0x00;

TRISB=0b00000000;                  //Alles Ausgänge

lcdport=0;

Delay1ms(1000);                    // 1s warten

LCDInit();                         // LSD Initialisieren


// LCD (x,y) X = LCD Zeile , y = LCD Position (bei 16 Stellen von 0-15)

LCDCls();                          // Bildschirm löschen

LCDPos(1,3);                       // Position der ersten Zeichen 1 
Zeile, Position 0

LCDString("KickDeluxe");        // String Anzeigen

LCDPos(2,6);                       // Position der ersten Zeichen 2 
Zeile, Position 0

LCDString("V1.0");      // String Anzeigen

Delay1ms(3000);                    // Warte 3s zeit zum lesen.



LCDCls();

LCDPos(1,0);

LCDString("Rot - Blau");

LCDPos(2,3);

LCDString("0 - 0");

Goto Routine:

//---------------------------------------------------------------------- 
-
//Routine - Pinabfrage - Steuerung
//---------------------------------------------------------------------- 
--
Routine:



If (A0 = 1) // Lichtschranke gibt auf A0 eine 1, Tor für Rot
  {
  TZR=TZR+1;
  LCDPos(2,3);
  LCDString(TZR);
  If (TZR = 6)
    {
    Goto Sieg;
    }

  }



If (A1 = 1) // Lichtschranke gibt auf A0 eine 1, Tor für Blau
  {
  TZB=TZB+1;
  LCDPos(2,7);
   LCDString(TZB);
  If (TZB = 6)
    {
    Goto Sieg;
    }
  }



If (A2 = 1) //NamesTaste Rot, gedrückt
  {
  NTR=NTR+1;

  If (NTR = 6)
    {
    NTR=0;
    }


  Switch (NTR)
    {
     Case 0 : LCDPos(1,0); LCDString("Rot"); NR="Rot"; break;

     Case 1 : LCDPos(1,0); LCDString("DAN"); NR="DAN"; break;

     Case 2 : LCDPos(1,0); LCDString("SEB"); NR="SEB"; break;

     Case 3 : LCDPos(1,0); LCDString("SVE"); NR="SVE"; break;

     Case 4 : LCDPos(1,0); LCDString("TIM"); NR="TIM"; break;

     Case 5 : LCDPos(1,0); LCDString("LYN"); NR="LYN"; break;
    }
  }



If (A3 = 1) //NamesTaste Blau, gedrückt
  {
  NTB=NTB+1;

  If (NTB = 6)
    {
    NTB=0;
    }

  Switch (NTB)
    {
     Case 0 : LCDPos(1,0); LCDString("Blau"); NB="Blau"; break;

     Case 1 : LCDPos(1,0); LCDString("DAN "); NB="DAN"; break;

     Case 2 : LCDPos(1,0); LCDString("SEB "); NB="SEB"; break;

     Case 3 : LCDPos(1,0); LCDString("SVE "); NB="SVE"; break;

     Case 4 : LCDPos(1,0); LCDString("TIM "); NB="TIM"; break;

     Case 5 : LCDPos(1,0); LCDString("LYN "); NB="LYN"; break;
    }
  }



If (A4 = 1) // Reset-Taste, gedrückt
  {
   LCDPos(2,3);
   LCDString("0 - 0");
   TZR = 0;
   TZB = 0;
  }

Goto Routine;


Sieg:
  LCDPos(1,0);
  if (TZR = 6)
    {
      LCDString(NR & "Gewinnt!");
    }

  if (TZB = 6)
    {
      LCDString(NB & "Gewinnt!");
    }


}

// PROGRAMM ENDE

von antworter (Gast)


Lesenswert?

Warum rufst Du um Hilfe (im Betreff), wenn Dein Programm vom Einsatz 
noch weit entfernt ist ?

...aber mir fällt auf:

(1)

> if (TZR = 6)

Das ist eine Zuweisung und kein Vergleich ("==").

(2)

laß GOTO den Basic-Programmierern - bei C ist es meist nur schlechter 
Stil (da gibt es Funktionen, die man aufrufen kann)

(3)

...das ganze Programm werde ich mir nicht durchlesen...

von Danny (Gast)


Lesenswert?

Weil ich wissen will ob es so machbar ist, ob die Befehle mehr oder 
weniger stimmen. Damit das Programm schon so gut wie fertig ist.

Ich weiß das es Funktionen / Prozduren gibt. Doch da mein C schon was 
veraltet ist, war ich mir nicht mehr sicher mit dem auf aufruf von 
Funktion und der Deklaration.

aber trotzdem danke...

von Anton Keller (Gast)


Lesenswert?

die idee finde ich echt witzig!
das koennten wir in der firma auch gut gebrauchen.
welche lichtschranken willst du da verwenden?

hat evtl. schon mal jemand hier im forum so was gebastelt?

gruss
a.

von Rahul, der Trollige (Gast)


Lesenswert?

>char NB;  //Name von Blau

Ist kein String, sondern nur ein einzelnes Zeichen.

Das ist ein interessantes Projekt. Da du aber scheinbar noch keine 
Erfahrung mit Mikrocontrollern (und Programmierung) hast´, solltest du 
erste mal klein anfangen.
An deinem Programm sind diverse Sachen, die einfach nicht funktionieren 
(können).
Nimm dir einfach die Zeit, etwas C zu lernen und deinen Controller 
kennenzulernen. Dann darfst du dich auch noch mit solchen Sachen wie 
"Tastenentprellung", "Flankenauswertung" etc auseinandersetzen...

von Danny (Gast)


Lesenswert?

@Anton Keller

Lichschranken Bausatz bei Conrad ca. 15€ pro Bausatz



@Rahul, der Trollige
Doch doch ich habe schon ahnung von Mikrocontrollern, habe schon mehre 
Projekte gemacht unteranderem ein Chipkarten gesteuertes Türschloss.
Ich habe ein groß Teil aus einem anderen Projekt übernommen.
Mit der Variablen muss ich dir recht geben. Aber das kam einfach daher 
das ich den Quellcode übernommen hatte.

Wie gesagt es soll ja nur ein Grundgerüst sein. Was meinst du geht den 
so nicht?!? Also mit meinem anderem Board(8051) wäre es so kein Problem, 
abgesehen jetzt von Variablen oder so...

Mein "C" ist nur einwenig eingerostet da wir im Studium jetzt VB & Java 
machen mußten.

von Danny (Gast)


Lesenswert?

Ne das war meine eigene idee.

von Berti (Gast)


Lesenswert?

Ich glaub ned das das mit den lichtschranken so extra funktioniert... 
Die müssten schon irgendwo im Ballkanal angebracht sein... Wenn der Ball 
einmal etwas höher ins tor fliegt dann merkt die LS nix...

von Danny (Gast)


Lesenswert?

Natürlich im Ball rücklauf ^^ bin ja nicht von gestern!

von Rahul, der Trollige (Gast)


Lesenswert?

>Natürlich im Ball rücklauf ^^ bin ja nicht von gestern!

Da ist man ja schneller, wenn man mit der Hand zählt...
Im Tor sollte doch am besten eine "Prallplatte" sein, die den Ball in 
den Ballrücklauf lenkt (sonst ist der Ball wieder im Spiel...). Die 
Platte könnte man an einen Taster o.dergl. koppeln, den man mit dem 
Controller abfragt. Dadurch wäre die Torauswertung wesentlich schneller.

Übrigens zählt dein Programm solange Tore, wie der Ball zum passieren 
der Lichtschranke braucht.

>NR="Rot"; break;
Dass NR bis jetzt nur ein einzelnes Zeichen ist, hatte ich ja schon 
geschrieben. Das würde aber auch völlig reichen, wenn du die Ausgabe 
sowieso so machst:
>LCDString("Rot");

Bis jetzt ist das Spiel ja sehr statisch: Es können nur 5 feste Leute 
und 2 "Farben" spielen. Eine Erweiterung wäre, dass man Namen über 
Tasten (auf, ab, links rechts, Eingabe) eingeben kann.
Eine Uhr wäre bestimmt auch noch toll.
Und der Kicker geht nur bis 6 Tore?


von Danny (Gast)


Lesenswert?

Also von der Platte bis zur lichtschranke sind ungefähr 0,5 sekunden 
unterschied! Und es geht ja auch nicht darum was schneller ist! Und wie 
der Kicker gebaut wird, weiß ich auch, aber danke.

Das die Licht schranke solang zählt kann sein, aber ist ja kein Problem!
Dann die Abfrage nach dem eine "1" anliegt beim nach dem ersten 
hochzählen 1 sekunde aussetzen lassen! Danke für den Hinweis!

Das es nur bis 6 geht ist vorläufig, aber bei Kneipenspielen geht es 
immer nur bis 6, da es nur 11 Bälle gibt. Und international geht ein 
Satz bis 5! Nur soviel dazu!

Farben ? Rot und Blau bezieht sich auf die Spielfigurfarben, von daher 
wären mehr farben etwas komisch! Rot und Blau ist auch nur für Leute die 
keinen gespeicherten Namen haben gedacht!

Und die Namen sind auch erstmal Platz halter. Das Hinterher auszubauen 
ist ja auch kein Problem, die Software kann man immer erweitern. Das ist 
nur erstmal das Grundgerüst, habe auch schon an sachen... wie Spielzeit 
usw. gedacht. aber das kommt im nachhinein.

von Rahul, der Trollige (Gast)


Lesenswert?

>Und international geht ein Satz bis 5! Nur soviel dazu!

Ich kenne halt nur "Kinder- und Jugendhaus-Kicker"...

>Farben ? Rot und Blau bezieht sich auf die Spielfigurfarben

Das war mir schon klar.

von Peter D. (peda)


Lesenswert?

Also was da oben steht, muß ja haufenweise Warnings und Errors 
produzieren.
Sowas ist total unlesbar.

Beseitige erstmal diese Warnings und Errors und dann frag nochmal neu.

Und vor allem poste Code als Anhang, damit man sich nicht totscrollen 
muß.


Peter

von Karl H. (kbuchegg)


Lesenswert?

Mein Tipp

Schreib nicht zuviel auf einmal. Das hat keinen Sinn.
Hinterher stehst du mit einem Programm da, das nicht
funktioniert und du hast keinen blassen Dunst wo du
mit der Fehlersuche anfangen sollst.

Mach erst mal die Hardware soweit fertig, dass du den
µC programmieren kannst. Und da fängst du dann klein
an, das ganze hochzuziehen.

Nur so als Tipp:
Das NR ein char Array sein muss, wurde ja schon gesagt.
Aber das da
  NR = "Rot";
geht gar nicht. Einem Array kann man als ganzes nichts
zuweisen.

  char NR[20];

  ....

  strcpy( NR, "Rot" );

ist das was du willst.

Wie gesagt: Fang klein an. Wenn du die Details der Syntax nicht
mehr kennst, dann besorg dir Literatur und lies dich erst mal
ein. Ein Projekt dieser Größenordnung ist ohne vernünftige
Funktionsaufteilung ein gescheitertes Projekt.



von Karl H. (kbuchegg)


Lesenswert?

> Damit das Programm schon so gut wie fertig ist.

Dein Programm mag vielleicht so funktionieren, nachdem
die Syntax und sonstige Fehler beseitigt sind.
Aber fertig ist das noch lange nicht. Da gibt es viele
Dinge die man so nicht macht. zb das hier:

  Switch (NTR)
    {
     Case 0 : LCDPos(1,0); LCDString("Rot"); NR="Rot"; break;

     Case 1 : LCDPos(1,0); LCDString("DAN"); NR="DAN"; break;

     Case 2 : LCDPos(1,0); LCDString("SEB"); NR="SEB"; break;

     Case 3 : LCDPos(1,0); LCDString("SVE"); NR="SVE"; break;

     Case 4 : LCDPos(1,0); LCDString("TIM"); NR="TIM"; break;

     Case 5 : LCDPos(1,0); LCDString("LYN"); NR="LYN"; break;
    }

Schon mal was von Arrays gehört?

> Mein "C" ist nur einwenig eingerostet da wir im Studium jetzt
> VB & Java machen mußten.

Schwer zu glauben, dass du überhaupt schon mal was in C oder Java
gemacht hast.

von Peter D. (peda)


Lesenswert?

Karl heinz Buchegger wrote:

> Aber fertig ist das noch lange nicht. Da gibt es viele
> Dinge die man so nicht macht. zb das hier:
>
>   Switch (NTR)
>     {
>      Case 0 : LCDPos(1,0); LCDString("Rot"); NR="Rot"; break;
>
>      Case 1 : LCDPos(1,0); LCDString("DAN"); NR="DAN"; break;
>
>      Case 2 : LCDPos(1,0); LCDString("SEB"); NR="SEB"; break;
>
>      Case 3 : LCDPos(1,0); LCDString("SVE"); NR="SVE"; break;
>
>      Case 4 : LCDPos(1,0); LCDString("TIM"); NR="TIM"; break;
>
>      Case 5 : LCDPos(1,0); LCDString("LYN"); NR="LYN"; break;
>     }

Stimmt, das würde man so machen:
1
char *NB;
2
3
char *namen[] = { "Rot", "DAN", "SEB", "SVE", "TIM", "LYN" };
4
5
if( NTR <= 5 ){
6
  NB = namen[NTR];
7
  LCDPos(1,0);
8
  LCDString( NB);
9
}


Unter C weißt man einfach einen Pointer zu, statt unnötig ganze Strings 
zu kopieren.


Peter

von Danny (Gast)


Lesenswert?

@Karl heinz Buchegger
Brauchst du ja auch nicht glauben! Nur wenn es nicht so wär würd ich es 
auch nichts sagen, davon hab ich auch nichts. Aber glaub mal wenn du vor 
2 Jahren das letzte mal c Programmiert hast und in der zwischen Zeit nur 
VB programmieren mußtest, dann kommt man oft durcheinander.
Den Code habe ich mir mehr oder weniger zusammen geschnipselt.
Aber hast recht, vll sollte ich lieber auf die Hardware warten.
Und mich nochmal was einlesen. Trotzdem danke...

von Peter D. (peda)


Lesenswert?

Danny wrote:

> so nicht?!? Also mit meinem anderem Board(8051) wäre es so kein Problem,
> abgesehen jetzt von Variablen oder so...

Und warum dann der Wechsel zum PIC ?

Ich habs gerne, wenn ich immer gleich alles ausprobieren kann.

Und das geht ja mit den 8051-ern mit Bootloader ganz leicht (z.B. 
AT89C51ED2).

Dann kann man sogar im Feld, wenn man ein Bug entdeckt, sofort updaten.

Auch im fertigen Gerät noch nen MAX202 und nen Sub-D 9pol. einzubauen, 
kost ja nix.


Peter

P.S.:
Wenn ich an früher denke, wo man immer die Chips ins Programiergerät 
stecken mußte, bis dann ein Beinchen abbrach, kommt mir heute noch das 
Grausen.

von Danny (Gast)


Lesenswert?

Hi, das Board was ich habe, habe ich damals in der Schule gebaut.
(Keiner Normalen Schule ^^)

Leider ist das wie gesagt lang her und ich weiß kaum noch etwas über den 
Controler. Haben damals auch keine großen Infos bekommen wie genau er 
Funktioniert.

Habe mal hier 3 Bilder.
Bild1 (Das Board) :
http://img255.imageshack.us/my.php?image=p10102673bk.jpg

Bild2 (Stromplatine mit den Ports) :
http://img255.imageshack.us/my.php?image=p10102682lp.jpg

Bild3 (Ein anderes kl. Board) :
http://img372.imageshack.us/my.php?image=p10102692xi.jpg


Vielleicht kann mir ja jemand was dazu sagen oder helfen, ob und wie ich 
damit noch etwas anfangen kann!
Haben dann im Internet, nach einem anderem Board geguckt... gibt dann ja 
viel PIC, AVR usw...

Hatte dann die Seite von Sprut gefunden (www.sprut.de / Burner8) und 
dort fand ich alles gut erklärt daher habe ich gedacht ich nehm den PIC.
Ansonsten ist es mir eigentlich egal...

von antworter (Gast)


Lesenswert?

>Hi, das Board was ich habe, habe ich damals in der Schule gebaut.

>...

>Vielleicht kann mir ja jemand was dazu sagen oder helfen, ob und wie ich
>damit noch etwas anfangen kann!



hm...mir fehlen die Worte...

von Danny (Gast)


Lesenswert?

Warum fehlen dir die Worte? Find wenn du keinen hilfreichen Kommentar 
hast kannst ihn auch gern für dich behalten!

Hab das Board zum laufen bekommen...  Sagen wir mal so es antwortet , 
beim Tera term!

von Peter D. (peda)


Lesenswert?

Danny wrote:

> Vielleicht kann mir ja jemand was dazu sagen oder helfen, ob und wie ich
> damit noch etwas anfangen kann!
> Haben dann im Internet, nach einem anderem Board geguckt... gibt dann ja
> viel PIC, AVR usw...

Ja, so sahen die Boards früher mal aus.

Wie gesagt, heutzutage ist alles in einem Chip und geflasht wird direkt 
über die UART vom PC, Programmiergerät unnötig:

http://www.mikrocontroller.net/attachment/1204/8051.pdf


Peter

von Danny (Gast)


Lesenswert?

@Peter Dannegger

Ahh... ;) Danke...
Aber zum testen würde es ja reichen. Also Hier wird das Programm ja auch 
per Serial Schnittstelle direkt in den Speicher geschrieben! Nur nachdem 
der Strom abgeklemmt wurde ist es eben weg, dafür kann man aber ne 
Batterie einbauen. War damals wohl was besonderes... ka.
Gibt es denn Bauanleitungen zu einem Board (der neuen Generation/mit 
Flashspeicher)?

von Peter D. (peda)


Lesenswert?

Danny wrote:

> Gibt es denn Bauanleitungen zu einem Board (der neuen Generation/mit
> Flashspeicher)?


Na viel anzuleiten is da nich. Das bischen MAX202, Quarz usw. hat man 
schnell auf ner Rasterplatine zusammengepappt (Schaltplan siehe oben).

Dann noch Flip und SDCC 8051 (oder Wickenhäuser usw.) runterladen und ab 
gehts.


Peter

von Danny (Gast)


Lesenswert?

Also ganz Easy im vergleich zu meinem Alten Board ^^
Naja aber genau zu wissen wie was Beschaltet wäre schon gut! also wie 
die Max202 angeschlossen wird und der Quarz!  (wie erwähnt über den 
Aufbau hat man uns leider zuwenig erklärt was ich schade find)!

von Danny (Gast)


Lesenswert?

Sorry, okay vergess wasich geschrieben hab :)

Ist ja alles auf dem Schaltplan! Hab nicht richtig geguckt. Danke dir!!!

von Danny (Gast)


Lesenswert?

Ich habe folgendes Problem.
Wenn ich jetzt eine File erstelle zb. im text editor (test.c)!
Aber ich bekomm aus der c-file keine hexfile....
Kann mir einer helfen ???

von Danny (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Danny wrote:

> Aber ich bekomm aus der c-file keine hexfile....

Das macht man mit nem C-Compiler (kaufen, Eval-Version oder Freeware), 
z.B.:

http://sdcc.sourceforge.net/

http://www.keil.com/c51/default.asp?bhcp=1

http://www.wickenhaeuser.de/


Bootloader-Typen des 8051 gibts z.B. von Atmel, Maxim, NXP, ...
Einfach mal auf deren Webseiten nachsehen.

Der obige Typ müßte einer sein (ohne Gewähr).

Ich benutze den AT89C51CC01UA, weil ich CAN brauche.


Peter

von Danny (Gast)


Lesenswert?

Ja, aber habe irgendwie Problemde damit. Habe den von Keil und Wicken... 
schon probiert!

von Peter D. (peda)


Lesenswert?

Danny wrote:
> Ja, aber habe irgendwie Problemde damit.

Damit kann man garnichts anfangen, also welche Probleme ?


> Habe den von Keil und Wicken...

Die Keil Eval plaziert den Code mit Offset, also nen genügend großen 
8051 nehmen.
In der IDE hast Du auch HEX-Output ausgewählt ?

Ansonsten gibts da bestimmt Foren oder Knowledgebase, die die erste 
Anlaufstelle zu speziellen Problemen sein sollten.
Mir hat auch mal Herr Keil geantwortet. Der dürfte aber schon längst in 
Rente sein.

Ich benutze noch ne 1995-er Version. Da ich kein Banking brauche, tuts 
die ja auch. Kostete damals etwa 1600,-DM.


Peter

von Danny (Gast)


Lesenswert?

@Peter Dannegger

Habe leider keine anleitung gefunden zum bau eines MC mit flash.

Also ich benötige den Controller mit Flash , ne Max 202 (nicht ne 
max232??) laut der PDF von dir mehr nicht (abgesehen von den 
kondensatoren und widerständen)  ???

Die Schalter und Led's an den Ports ist ja ne freiwillige sache....

von Rahul, der Trollige (Gast)


Lesenswert?

>keine anleitung gefunden zum bau eines MC mit flash.

Einen Die basteln ist auch nicht gerade einfach...

Der Flash ist schon auf dem Chip drauf.
Peters "Liebling" ist ein 8051 mit einem Bootloader, der über den 
CAN-Bus mit einer neuen Appliaktion beschrieben werden kann.
Den gleichen gibt es auch mit einem Bootloader, der über die RS232 
arbeitet. Beide müsste man bei Angelika-Reichelt erwerben können 
(Achtung bei der Bestellbezeichnung!!!).
Übrigens ist ein Bootloader ein Programm auf dem Controller, das sich um 
die programmierung des Controllers kümmert (klingt vermutlich etwas 
widersinnig). Auf der PC-Seite kümmert sich "FLIP" um die Kommunikation 
mit dem Controller. "FLIP" gibt es auf der Atmel-Seite.

von Danny (Gast)


Lesenswert?

Danke... das habe ich schon soweit verstanden!
Ich wollte schon einen der über die r232 komuniziert. Aber das war pedas 
pdf aber auch so oder nicht ?

von Rahul, der Trollige (Gast)


Lesenswert?

Wenn du das hier meinst:
http://www.mikrocontroller.net/attachment/1204/8051.pdf

Das scheint auf RS232-Kommunikation ausgelegt zu sein, da zwar ein 
MAX202 aber kein CAN-Transceiver vorhanden ist.
Du solltest dir dazu mal das Datenblatt des T89C51RD2-3C angucken.

von Danny (Gast)


Lesenswert?

mach ich , danke! Ja das meinte ich.

von Rahul, der Trollige (Gast)


Lesenswert?

Der RD2 ist abgekündigt. Der ED2 ist der Ersatztyp (das könnte man jetzt 
"Gronottische Klugscheisserei" nennen, da ich das gerade auf der 
Atmel-Seite herausgefunden habe...)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.