Forum: Mikrocontroller und Digitale Elektronik Schieberegister (74HCT595) in C


von Helge.S (Gast)


Lesenswert?

Moin Moin^^


Sitze nun schon länger an einer "einfachen" Realisierung eines LED 
Lauflichtes... Das ich gerne in C verwirklichen will...

leider komme ich nicht zum gewünschen Ergebniss...

Ich benutze

Atmega32 / 16MHz
 2 x 74HCT595

Verdrahtung stimmt soweit...

Belegung...

// Enable = Low

// Data      <--> PORTA.4
// SCK       <--> PORTA.5
// SCL / MR  <--> PORTA.1
// RCK     <--> PORTA.0
// OE     <--> PORTA.2


hat jemand vill. eine Testsoftware die Funktioniert ?!

von Karl H. (kbuchegg)


Lesenswert?

Zeig halt mal deine her.
Dann ist es auch leichter, das Niveau der Antwort an deine Fähigkeiten 
anzupassen.

Was genau funktioniert denn nicht.
WEnn es kein Lauflicht wäre, könntest du gezielt eine einzelne LED, die 
an einem Pin des 595 hängt einschalten?

von Helge.S (Gast)


Lesenswert?

leider funktioniert das auch nicht !

ich habe mal die "Software" mit Schaltplan der CPU Platine + 
Schieberegisterplatine mit angehangen...


Edit: AUf Wunsch des TO gelöscht

: Bearbeitet durch User
von g457 (Gast)


Lesenswert?

> leider funktioniert das auch nicht !

Andere Leute Code sollte man nicht nur 'ausleihen' sondern auch 
verstehen. Schaug Dir z.B. mal com74hc595_out() an.

Und dann entsorg auch noch gleich die Warnungen die Dir der Compiler um 
die Ohren haut, die sind entgegen landläufiger Meinung nicht dazu da um 
ignoriert zu werden.

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:
> leider funktioniert das auch nicht !

Dann leg erst mal das Luflicht ad acta.

Du hast einen uint8_t und der muss an das Schieberegister ausgegeben 
werden, so dass die Pins dort genau den Bits in diesem uint8_t 
entsprechen.

So, und jetzt such ich mir mal die Tools zusammen, um das RAR-File zu 
entpacken. Zip wär mit einem Mausklick drauf gegangen, aber bei RAR 
wirds ein bischen aufwändiger. Nein, das soll kein Meckern sein, es soll 
dich nur zum Nachdenken bringen, welche Fileformate du in Zukunft 
verwenden willst.

von Helge.S (Gast)


Lesenswert?

okay sorry :(
für das nächste mal weiß ich bescheid ;)

wenn ich die ganze ausgänge des schieberegisters setzen oder löschen 
will brauche ich doch nicht den "out" befehl...

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:
> okay sorry :(
> für das nächste mal weiß ich bescheid ;)
>
> wenn ich die ganze ausgänge des schieberegisters setzen oder löschen
> will brauche ich doch nicht den "out" befehl...

Doch.

Die Set Funktionen bzw. Unset Funktionen setzen bzw. löschen die Bits in 
einem im AVR vorgehaltenen Speicher. Erst ein Aufruf der out Funktion 
befördert die dann nach draussen zum 595.

Liest du denn den Code nicht? Oder wenigstens die Kommentare im Header 
File?

: Bearbeitet durch User
von Helge.S (Gast)


Lesenswert?

was mache ich denn falsch ?! habt ihr euch den Quellcode mal angeschaut 
?!


/*
 * GccApplication1.c
 *
 * Created: 15.01.2014 17:38:29
 *  Author: Jan Homann
 */

#define F_CPU 16000000
#include <avr/io.h>
#include <util/delay.h>



// Enable = Low

// Data      <--> PORTA.4
// SCK       <--> PORTA.5
// SCL / MR  <--> PORTA.1
// RCK     <--> PORTA.0
// OE     <--> PORTA.2



int main(void)
{

DDRA = 0xFF;

PORTA = 0b00000010; //Master Reset auf High
com74hc595_init(); // Initalisiert die Ports

com74hc595_setall(); // Setzt alle Ausgänge auf High
com74hc595_out();   // Ausgabe



    while(1)
    {


    }
}

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:

> PORTA = 0b00000010; //Master Reset auf High

Was soll das?
OE vom 595 ist Low-Active. D.h. da muss eine 0 sein, damit das 
Schieberegister auf die Ausgänge durchschaltet.

Im übrigen brauchst du dich nicht darum kümmern. Das können die 
Ausgabefunktionen nämlich auch für dich erledigen.
1
...
2
#ifdef WITH_OE
3
  PORT_com74hc595 &= ~(1<<PORT_OE);
4
#endif
5
...

alles was es dazu braucht, ist ein
1
#define WITH_OE
irgendwo am Anfang des C-Files mit den 595 Routinen oder im Header File.

Und siehe da. Im Header File steht
1
// use with /OE
2
//#define WITH_OE

Also: einfach auskommentieren und sich darüber freuen, dass der Autor 
mitgedacht hat.

Was hast du eigentlich mit dem Clear Eingang des SChieberegisters 
gemacht? Der muss high sein. Ich hab jetzt aber keine Lust, mir das aus 
der Platine rauszusuchen, ob du den Pin angeschlossen hast oder nicht.

: Bearbeitet durch User
von Helge.S (Gast)


Lesenswert?

Clear Eingang ?!

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:
> habt ihr euch den Quellcode mal angeschaut
> ?!

Ja.
Der sieht anders aus, als der den du hier gepostet hast.
Im main vom RAR File ist dann sogar der Aufruf von com74hc595_init(); 
drinnen, der hier in deinem geposteten Code fehlt.

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:
> Clear Eingang ?!

Ja, Clear Eingang

Pin 10 vom 74595

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister

so recht hast du dir aber nicht wirklich angesehen, wie man den Baustein 
prinzipiell benutzt. Oder?

von g457 (Gast)


Lesenswert?

>> PORTA = 0b00000010; //Master Reset auf High
>
> Was soll das?

Das dürfte /SCLR ('shift clear' - welcher Hersteller nennt das 'master 
reset'?..) sein, nicht /OE, sollte also passen. Fehlt also nur der von 
Dir angespochene Rest (/OE mit eincompilieren).

von Helge.S (Gast)


Lesenswert?

Helge.S schrieb:
> PORTA = 0b00000010; //Master Reset auf High

Karl Heinz schrieb:
> Helge.S schrieb:
>> Clear Eingang ?!
>
> Ja, Clear Eingang
>
> Pin 10 vom 74595
>
> http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister
>
> so recht hast du dir aber nicht wirklich angesehen, wie man den Baustein
> prinzipiell benutzt. Oder?


Dort ist er doch auf High !!!

PORTA = 0b00000010; //Master Reset auf High

von Karl H. (kbuchegg)


Lesenswert?

g457 schrieb:
>>> PORTA = 0b00000010; //Master Reset auf High
>>
>> Was soll das?
>
> Das dürfte /SCLR ('shift clear' - welcher Hersteller nennt das 'master
> reset'?..) sein, nicht /OE,

Ah, da hab ich mich vertan.
Da hab ich ihm jetzt Unrecht getan. Ich nehms zurück.
WITH_OE muss trotzdem im Header File auskommentiert werden.

von Helge.S (Gast)


Lesenswert?

Karl Heinz schrieb:
> Ah, da hab ich mich vertan.
> Da hab ich ihm jetzt Unrecht getan. Ich nehms zurück.
> WITH_OE muss trotzdem im Header File auskommentiert werden.

Das habe ich getan, immer noch das selbe

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:
> Karl Heinz schrieb:
>> Ah, da hab ich mich vertan.
>> Da hab ich ihm jetzt Unrecht getan. Ich nehms zurück.
>> WITH_OE muss trotzdem im Header File auskommentiert werden.
>
> Das habe ich getan, immer noch das selbe

Wie sieht das Programm jetzt aus?

Das hier
1
int main(void)
2
{
3
DDRA = 0xFF;
4
PORTA = 0b00000010; //Master Reset auf High com74hc595_init(); // Initalisiert die Ports
5
com74hc595_setall(); // Setzt alle Ausgänge auf High
6
com74hc595_out(); // Ausgabe
7
8
...

kann es nicht sein. Da fehlt der Aufruf von com74hc595_init

: Bearbeitet durch User
von Helge.S (Gast)


Lesenswert?

#define F_CPU 16000000
#include <avr/io.h>
#include <util/delay.h>



// Enable = Low

// Data      <--> PORTA.4
// SCK       <--> PORTA.5
// SCL / MR  <--> PORTA.1 // MasterReset muss auf High (Low Active)
// RCK     <--> PORTA.0
// OE     <--> PORTA.2 // Muss auf LOW damit die Ausgabe möglich ist



int main(void)
{

DDRA = 0xFF;

PORTA = 0b00000010;
com74hc595_init(); // Initalisiert die Ports

com74hc595_setall(); // Setzt alle Ausgänge auf High
com74hc595_out();   // Ausgabe



    while(1)
    {


    }
}



& mit OE ;)

von Karl H. (kbuchegg)


Lesenswert?

ok, wenn alles neu compiliert wurde, dann ist das Programm soweit erst 
mal OK.

Wenden wir uns der Hardware zu.
Ich hab hier kein Eagle auf der Maschine. Kannst du den Schaltplan mal 
als Bild posten?

von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz schrieb:
> ok, wenn alles neu compiliert wurde, dann ist das Programm soweit erst
> mal OK.

d.h. wenn ich mal grundsätzlich davon ausgehe, dass die 
Ansteuer-Funktionen korrekt sind. Der Code sieht gut und aufgeräumt aus 
- ich denke man kann dem original Autor vertrauen.

von Helge.S (Gast)


Angehängte Dateien:

Lesenswert?

habe sie mal als .pdf gepostet

von Karl H. (kbuchegg)


Lesenswert?

ok.
Laut Schaltplan müssten hiemit
1
com74hc595_setall(); // Setzt alle Ausgänge auf High

alle LED aus gehen.
Tun sie das?
Oder wie stellst du sonst fest, dass die Pins nicht auf 1 gehen?

: Bearbeitet durch User
von Helge.S (Gast)


Lesenswert?

Karl Heinz schrieb:
> ok.
> Laut Schaltplan müssten hiemit
> com74hc595_setall(); // Setzt alle Ausgänge auf High
>
> alle LED aus gehen.
> Tun sie das?

NEIN :( Es passiert leider gar nichts :(((
ich verzweifel langsam... :(

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:
> Karl Heinz schrieb:
>> ok.
>> Laut Schaltplan müssten hiemit
>> com74hc595_setall(); // Setzt alle Ausgänge auf High
>>
>> alle LED aus gehen.
>> Tun sie das?
>
> NEIN :( Es passiert leider gar nichts :(((

was heisst gar nichts?

leuchten sie oder leuchten sie nicht?


Bitte denk daran: ich kann dir nicht über die Schultern schauen. Ich 
muss mir mein Bild dessen, was passiert alleine danach bilden, was du 
schreibst. Also: sei eindeutig.

: Bearbeitet durch User
von Helge.S (Gast)


Lesenswert?

Karl Heinz schrieb:
> Helge.S schrieb:
>> Karl Heinz schrieb:
>>> ok.
>>> Laut Schaltplan müssten hiemit
>>> com74hc595_setall(); // Setzt alle Ausgänge auf High
>>>
>>> alle LED aus gehen.
>>> Tun sie das?
>>
>> NEIN :( Es passiert leider gar nichts :(((
>
> was heisst gar nichts?
>
> leuchten sie oder leuchten sie nicht!


Sie leuchten alle! Ich kann sie mit Enable High / Enable Low alle auf 
einmal ausschalten...

nur das will ich ja gar nicht :D enable sollte ja dauerhaft auf low 
liegen...

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:

> Sie leuchten alle!

ok. Das wollte ich wissen. Also führen die Pins am 595 einen 0 Pegel.

Wie können eines tun

Das hier
1
void com74hc595_out()
2
{
3
    unsigned char anz = com74hc595_SIZE;
4
    unsigned char* serp = com74hc595 + com74hc595_SIZE;
5
6
    do
7
    {
8
        unsigned char bits;
9
        unsigned char data = *--serp;
10
11
        /* 8 Bits per Byte to 74HC595 */
12
        for (bits = 8; bits > 0; bits--)
13
        {
14
      PORT_com74hc595 &= ~(1<<PORT_SER);
15
            if (data & 0x80)
16
            {
17
        PORT_com74hc595 |= (1<<PORT_SER);
18
            };
19
20
            data <<= 1;
21
            /* Strobe on SCK to shift the bit into 74HC595  */
22
      PORT_com74hc595 &= ~(1<<PORT_SCK);
23
      PORT_com74hc595 |= (1<<PORT_SCK);
24
        }
25
    }
26
    while (--anz > 0);
27
28
    /* Strobe on RCK for out on 74HC595 */
29
  PORT_com74hc595 &= ~(1<<PORT_RCK);
30
  PORT_com74hc595 |= (1<<PORT_RCK);
31
}
ist die zentrale Ausgabefunktion.

Man kann da mal ein paar delay_ms einbauen, zb mit 1000ms und dann ein 
paar LED an die 3 wichtigen 595 Leitungen klemmen. Da müsste man dann 
die Ansteuerung des 595 quasi in Zeitlupe mitverfolgen können.

von Helge.S (Gast)


Lesenswert?

Ich wollte ja nur wissen ob die Software "richtig" ist...
Es hätte ja sein können das jemand hier eine kleine Testsoftware hat 
damit ich das fix ausprobieren kann... aber wenn die Software soweit 
okay ist kann es ja nur an der Hardware liegen....

von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz schrieb:
>
> Man kann da mal ein paar delay_ms einbauen, zb mit 1000ms und dann ein
> paar LED an die 3 wichtigen 595 Leitungen klemmen. Da müsste man dann
> die Ansteuerung des 595 quasi in Zeitlupe mitverfolgen können.

Das sieht dann so aus
1
void com74hc595_out()
2
{
3
    unsigned char anz = com74hc595_SIZE;
4
    unsigned char* serp = com74hc595 + com74hc595_SIZE;
5
6
    do
7
    {
8
        unsigned char bits;
9
        unsigned char data = *--serp;
10
11
        /* 8 Bits per Byte to 74HC595 */
12
        for (bits = 8; bits > 0; bits--)
13
        {
14
      PORT_com74hc595 &= ~(1<<PORT_SER);
15
            if (data & 0x80)
16
            {
17
        PORT_com74hc595 |= (1<<PORT_SER);
18
            };
19
  _delay_ms( 1000 );
20
21
            data <<= 1;
22
            /* Strobe on SCK to shift the bit into 74HC595  */
23
      PORT_com74hc595 &= ~(1<<PORT_SCK);
24
  _delay_ms( 1000 );
25
      PORT_com74hc595 |= (1<<PORT_SCK);
26
  _delay_ms( 1000 );
27
        }
28
    }
29
    while (--anz > 0);
30
31
    /* Strobe on RCK for out on 74HC595 */
32
  PORT_com74hc595 &= ~(1<<PORT_RCK);
33
  _delay_ms( 1000 );
34
  PORT_com74hc595 |= (1<<PORT_RCK);
35
  _delay_ms( 1000 );
36
}

Aber achtung:
Die out Funktion wird auch von init aus aufgerufen. Entweder du nimmst 
den Aufruf dort mal raus, oder du zählst die Blinker auf der SCK Leitung 
mit, oder du wartest bis du das erste mal den Puls an RCK siehst.

WEnn sich gar nichts an den 3 Kontrolleds an DATA, SCK bzw. RCK tut, 
dann stimmt an deiner Verkabelung was nicht.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

PS: Mit den 100nF an deiner Datenleitung solltest du nicht wirklich 
glücklich sein.

von Helge.S (Gast)


Lesenswert?

ich habe nun an DATA & SCK & RCK Led´s angelötet...

die Leuchten... obwohl in der While... nichts läuft... ist das richtig 
0.o?

von Karl H. (kbuchegg)


Lesenswert?

Was müsstest du sehen.
Ich geh mal davon aus, dass
die 3 Kontrolled direkt an den Eingängen des ersten 595 sitzen und so 
angebracht sind, dass sie leuchten, wenn der Pegel der Leitung eine 1 
ist.

WEiters geh ich davon aus, dass du den ersten out Aufruf in init drinnen 
gelassen hast.

Du müsstest sehen
* die Datenleitung muss auf 0 gehen. Also LED an der Datenleitung aus
* die SCK Leitung hat als Ruhepegel eine 1 eingestellt d.h. die leuchtet 
von Anfang an. Detto die RCK Leitung
* aber das ändert sich gleich.
* mit der LED an der Datenleitung auf aus, müssten jetzt die SCK-LED 16 
mal aus und wieder ein gehen.
* Nach dem 16.ten Blinker ist SCK wieder auf 1 (LED leuchtet) und dafür 
geht RCK auf aus und wieder ein.

In dem Moment müssten auf jeden Fall ALLE Led an den Ausgängen des 595 
anfangen zu leuchten. Selbst wenn einige davon nicht von Anfang an 
geleuchtet haben.

Damit ist die Initialisierungssequenz durch.
Jetzt komme den setall und wieder ein Aufruf von out

Im Prinzip ist alles gleich wie vorher, nur dass diesemal die LED an der 
Datenleitung leuchten müsste. Schliesslich werden ja lauter 1-er 
rausgetaktet.
Also Datenleitung auf 1 und wieder müssen 16 Blinker an der SCK Leitung 
zu sehen sein, ehe dann ein abschliessender Blinker an der RCK Leitung 
kommt.

Und dann sollten die LED an den Ausgängen eigentlich ausgehen.

Wenn der Ablauf nicht so ist und du zb überhaupt keine Veränderungen 
siehst (durch die _delay_ms hast du genügend Zeit die Umschaltungen zu 
sehen), dann sind deine Schieberegister nicht korrekt angeschlossen.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:
> ich habe nun an DATA & SCK & RCK Led´s angelötet...
>
> die Leuchten... obwohl in der While... nichts läuft... ist das richtig
> 0.o?

Ja.
Aber du müsstest die Anfangssequenz sehen können. Ein einziger Aufruf 
von out dauert durch die _delay_ms( 1000 ) jetzt 50 Sekunden. Das kannst 
du gar nicht übersehen, dass die Leitungen die Pegel wechseln.

(ok, delay_ms(500) hätte es auch getan)

von Helge.S (Gast)


Lesenswert?

Ich glaube es nicht :D
Mit deinem Code geht es aufeinmal...
Es liegt glaube ich wirklich an den 100nF!

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:
> Ich glaube es nicht :D
> Mit deinem Code geht es aufeinmal...
> Es liegt glaube ich wirklich an den 100nF!

Könnte sein.
Der verzögert und verschleift natürlich die Flanken an der Datenleitung. 
Wenn die nicht korrekt steht und der SCK Puls zu früh kommt, dann liest 
das 595 Bullshit von der Datenleitung ein.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz schrieb:
> Helge.S schrieb:
>> Ich glaube es nicht :D
>> Mit deinem Code geht es aufeinmal...
>> Es liegt glaube ich wirklich an den 100nF!
>
> Könnte sein.
> Der verzögert und verschleift natürlich die Flanken an der Datenleitung.
> Wenn die nicht korrekt steht und der SCK Puls zu früh kommt, dann liest
> das 595 Bullshit von der Datenleitung ein.

Wenn du ihn rausnehmen kannst, dann nimm ihn raus (wozu soll der 
überhaupt gut sein?).
Wenn das nicht möglich ist, dann baust du hier
1
void com74hc595_out()
2
{
3
    unsigned char anz = com74hc595_SIZE;
4
    unsigned char* serp = com74hc595 + com74hc595_SIZE;
5
6
    do
7
    {
8
        unsigned char bits;
9
        unsigned char data = *--serp;
10
11
        /* 8 Bits per Byte to 74HC595 */
12
        for (bits = 8; bits > 0; bits--)
13
        {
14
      PORT_com74hc595 &= ~(1<<PORT_SER);
15
            if (data & 0x80)
16
            {
17
        PORT_com74hc595 |= (1<<PORT_SER);
18
            };
19
20
//
21
// <-------------
22
//
23
            data <<= 1;
24
            /* Strobe on SCK to shift the bit into 74HC595  */
25
      PORT_com74hc595 &= ~(1<<PORT_SCK);
26
...

mit einem _delay_us eine kleine Verzögerung ein. Fang mit grossen Werten 
an und verringere den Wert, solange bis die korrekte Funktion aufhört. 
Dann gehst du noch mal ein kleines bischen höher.

Zum testen auch mal ein Muster aus abwechselnd 0 und 1 in die 
Schieberegister schreiben lassen.

: Bearbeitet durch User
von Helge.S (Gast)


Lesenswert?

nur was ich jetzt nicht verstehe...

ich kann mit...

com74hc595_setall();
com74hc595_out();   // Ausgabe

alle ausmachen...

möchte ich jededoch nur eine Led ausmachen funzt das nicht...

com74hc595_setBit(11111110);
com74hc595_out();   // Ausgabe

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:

> com74hc595_setBit(11111110);

Seit wann hast du 11 Millionen (und ein paar Zerquetschte) LED?


Code studieren!
bei SetBit gibst du die NUmmer des Ausgangs an. Dsa ist bei dir eine 
Zahl zwischen 0 und 15

Drum heisst das Argument für die Funktion
1
void com74hc595_setBit( unsigned char BitNumber)
auch BitNumber und nicht BitMask.

: Bearbeitet durch User
von Helge.S (Gast)


Lesenswert?

es müsste doch jetzt aber doch 8 x die Daten Led leuchten oder nicht ???

com74hc595_setPort(01010101);
com74hc595_out();

von Karl H. (kbuchegg)


Lesenswert?

Karl Heinz schrieb:

> Wenn du ihn rausnehmen kannst, dann nimm ihn raus (wozu soll der
> überhaupt gut sein?).

Ah, mir schwant etwas.
Da sind RC-Glieder und die Anschlüsse sind auf der Platine zusätzlich 
mit KEY1 und KEY2 beschriftet.

Das war wohl mal eine Hardware-Entprellung von Tastern (noch dazu eine 
untaugliche).
Tja. Jetzt weißt du, warum wir uns hier im Forum den Mund fusselig 
reden, dass man Tastenentprellung mit Software macht und nicht mit 
Hardware. Zum einen funktioniert das besser (und universeller), zum 
anderen braucht man weniger Bauteile, und last but not least, kann man 
den Müll auch nicht vergessen zu entfernen, wenn man die Pins für etwas 
anderes benutzt.

von Karl H. (kbuchegg)


Lesenswert?

Helge.S schrieb:
> es müsste doch jetzt aber doch 8 x die Daten Led leuchten oder nicht ???
>
> com74hc595_setPort(01010101);

setPort
1
void com74hc595_setPort( unsigned char Port, unsigned char Bits )

will 2 Argumente.
Port könnte man als die Nummer des Bausteins ansehen (bei dir 0 oder 1), 
Bits ist das Bitmuster, welches in diesen Baustein soll.

Nö.
01010101
ist eine Oktalzahl. Was du wahrscheinlich wolltest, ist 0b01010101. Und 
das ist was anderes.
1
23         Dezimalzahl
2
023        Oktalzahl (weil sie mit einer 0 beginnt)
3
0x23       Hexadezimalzahl
4
0b10101111 Binärzahl (gcc spezifische Erweiterung von C)

: Bearbeitet durch User
von Helge.S (Gast)


Lesenswert?

vielen dank für deine Zeit, ich müss mich echt mehr mit den Librarys 
beschäftigen...

hat mir echt weiter geholfen ;)

von Helge.S (Gast)


Lesenswert?

Hallo nochmal :-P

ich habe gestern nicht wirklich drauf geachtet was ich tu :(
könntest du bitte die .rar Datei löschen?!
Sie sollte eigentlich gar nicht an die Öffentlichkeit gelangen!
Das währe sehr nett

Es dreht sich eigentlich nur um den Schaltplan + Layout von der CPU...
das sollte entfernt werden

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.