Hallo zusammen, ich arbeite mit dem ATMega128 und möchte den SS Pin des Controllers nicht als CS für den Slave nutzen. Jetzt habe ich den SS Pin (PB0) als Ausgang definiert, wie es im Datenblatt geschrieben steht. Da steht auch, dass diese Einstellung keinen weiteren Einfluss hat. Allerdings kann ich dann die anderen Pins von PORTB, die ich als Ausgänge konfiguriert habe, nicht mehr setzen. Ist das normal?? MfG Loomit
Hallo, in dieser Form sollten doch die anderen Ports auch funktionieren. DDRB=(1 << LCD_RST) | (1 << LCD_A0) | (1 << SPI_MOSI) | (1 << SPI_SCK) | (1 << LCD_CS); zum Beispiel: PORTB &=~(1<<SPI_MISO); //low PORTB = (1<<SPI_MISO); // high oder PORTB &=~(1<< 0); //low PORTB = (1<< 0); // high
Loomit schrieb: > Allerdings kann ich dann die anderen Pins von PORTB, die ich als > Ausgänge konfiguriert habe, nicht mehr setzen. > > Ist das normal?? Nein, das ist nicht normal. Da wird wohl ein Fehler in Deiner Software vorliegen. G. G. schrieb: > PORTB = (1<<SPI_MISO); // high > PORTB = (1<< 0); // high Nein, so geht das eben nicht. Auf diese Weise wird zwar PB0 auf "High", aber alle anderen auf "Low" gesetzt und genau das will man im Allgemeinen nicht. Deshalb:
1 | PORTB |= ( 1<<PB0 ) |
Hallo, du hast recht, das Selbe wollte ich auch bezwecken, mit mehrmaligen kopieren ist mir das Missgeschick dann doch gelungen. Gruß G.G.
G. G. schrieb: > as Selbe wollte ich auch bezwecken, mit mehrmaligen > kopieren ist mir das Missgeschick dann doch gelungen. Hab ich mir schon gedacht, denn die Anweisungen zum Low-setzen waren ja richtig. :)
Das hatte ich mir schon gedacht, dass das nicht normal ist. Aber ich habe die Pins für die SPI-Schnittstelle folgendermaßen konfiguriert:
1 | DDRB |= (1<<DD_MOSI) | (1<<DD_SCK) | (1<<DD_SS); // DD_SS = 0 |
Dann habe ich die Pins 4-7 noch als Ausgänge konfiguriert, da ich diese noch benötige.
1 | DDRB |= (1<<DD4) | (1<<DD5) | (1<<DD6) | (1<<DD7); |
Mit dieser Konfiguration kann ich diese Pins nicht setzen, sobald ich aber den Teil (1<<DD_SS) wo ich PB0 als Ausgang deklariere entferne, funktioniert es. Ich kann mir das nicht erklären warum.
Hi >> Ich kann mir das nicht erklären warum. >103-Fuse? Hat keinen Einfluss auf PortB. MfG Spess
Loomit schrieb: > Ich kann mir das nicht erklären warum. Wie bereits oben angemerkt: Da wird wohl ein Fehler in Deiner Software vorliegen. Ohne mehr von Deinem Code zu sehen, können wir Dir nicht weiterhelfen.
Vielen Dank für die Hilfe Leute, habe das Problem gelöst...war natürlich ein Software Fehler!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.