Hallo Leute! Die Überschrift ist nicht ganz so gemeint, wie man sie auffassen könnte. Zur Zeit beschäftigt mich ein neues Projekt. Ich verwende dazu den ATMEGA2560-16AU. Dieser Baustein besitzt 100 Anschlüsse und ich benötige für mein Projekt bis auf 10 I/O-Pins alle I/O-Ports. Die Umschaltung der PORTS sollte relativ schnell erfolgen. Nun wollte ich fragen, ob man z.B. PORTL oder PORTK ebenso einfach und schnell ansprechen kann, wie die übrigen PORTS? Ich frage deshalb, weil beim ATMEGA128 konnte man, glaub ich, PORTG nicht bitmäßig ansprechen. Mein Programm wird so ausgelegt sein, dass die Ports byteweise geschrieben oder gelesen werden. Kann ich davon ausgehen, dass es hier keine bösen Überraschungen wegen der Ports geben wird? Ich programmiere mit Codevision-AVR. Ich danke euch vielmals. Tschüss Martin
> Ich frage deshalb, weil beim ATMEGA128 konnte man, glaub ich, > PORTG nicht bitmäßig ansprechen. Wie meinst du das? Die Ports sind doch alle gleichwertig. Gut, manche sind vielleicht nur 6-Bit breit, sollte aber kein Problem bereiten.
@Martin >Die Überschrift ist nicht ganz so gemeint, wie man sie auffassen könnte. Warum schreibst du sie dann nicht anders? >Die Umschaltung der PORTS sollte relativ schnell erfolgen. >Nun wollte ich fragen, ob man z.B. PORTL oder PORTK ebenso >einfach und schnell ansprechen kann, wie die übrigen PORTS? Was heisst für dich "realtiv schnell"? Der Portzugriff dauert einen Takt. Ist das schnell genug? >Ich frage deshalb, weil beim ATMEGA128 konnte man, glaub ich, >PORTG nicht bitmäßig ansprechen. Mag sein. >Mein Programm wird so ausgelegt sein, dass die Ports byteweise >geschrieben >oder gelesen werden. Dann ist das ja kein Problem. >Kann ich davon ausgehen, dass es hier keine bösen Überraschungen >wegen der Ports geben wird? Nöö. MfG Falk
RTFM. Besonders, wenn mission-kritische Features genutzt werden sollen. (WOW, was für'n Satz...) Oliver
>>Kann ich davon ausgehen, dass es hier keine bösen Überraschungen >>wegen der Ports geben wird? >Nöö. Datenblatt und Errata-sheet könnten interessant sein...
Unter Codevision kann man Ports im Allgemeinen folgendermaßen ansprechen: z.B. DDRA.0=1; PORTA.0=1; usw. Aber z.B. PORTG.0=1; funktioniert nicht Und ich habe gehört, dass dies irgendwie an den internen Registern des Prozessors liegen muss. Tschüss Martin
> Was heisst für dich "realtiv schnell"? Der Portzugriff dauert einen > Takt. Ist das schnell genug? Ziemlich sinnfrei diese Aussage, denn sie gilt nur, wenn stets der Wert ausgegeben werden soll. Für das Einlesen mag sie eingeschränkt richtig sein. Falk, hast du dir eigentlich mal dein gesamtes Posting durchgelesen? Du hast keine einzige wirklich nützliche Information gegeben, es enthält nur erziehende Anspielungen. Das aber nur am Rande...
Sieh Dir bitte die 'Register Summary' im Datenblatt an. Einige Ports liegen oberhalb der Adresse 0x60 und können daher 'nur' mit LDS und STS angesprochen werden. Das ist in der Regel kein Problem. Wenn ein Compiler PORTG.0=1 nicht kennt, ist das sein Problem. PORTG |= 1 sollte doch klappen.
@Schorsch >> Was heisst für dich "realtiv schnell"? Der Portzugriff dauert einen >> Takt. Ist das schnell genug? >Ziemlich sinnfrei diese Aussage, denn sie gilt nur, wenn stets der Wert >ausgegeben werden soll. Für das Einlesen mag sie eingeschränkt richtig >sein. ???? Was dauert bei einem Port lesen länger? in r16,portx i = PORTX; >Falk, hast du dir eigentlich mal dein gesamtes Posting durchgelesen? Du Oh, der Herr Oberlehrer mal wieder. >hast keine einzige wirklich nützliche Information gegeben, es enthält >nur erziehende Anspielungen. Das aber nur am Rande... Irrtum, ich habe nachgehakt. Denn solche schwammigen Begriffe wie "realtiv schnell" sind vollkommen unbrauchbar. Und wer schwammige Fragen stellt, sollte nicht auf klare Antworten hoffen. Deshalb sollte der Fragesteller erstmal die Frage klar(er) formulieren. Und wenn er schon weiss, dass einige Ports nicht bitadressierbar sind, dann hat er auch die nötigen Kenntnisse mal das Datenblatt zu lesen. Es kommt aberso rüber, al ob er dazu wenig Lust hat. @Rahul Der trollige >>>Kann ich davon ausgehen, dass es hier keine bösen Überraschungen >>>wegen der Ports geben wird? >>Nöö. >Datenblatt und Errata-sheet könnten interessant sein... Wenn Atmel ne simplen Portzugriff vergeigt gehören sie an die Wand gestellt (und die Controller in die Tonne). Jaja, McMurphy is watching you. MfG Falk
> Oh, der Herr Oberlehrer mal wieder. Greif dir mal an die eigene Nase! > in r16,portx > i = PORTX; Wenn du das in einem Takt schaffst, kriegste von mir ne Kiste Bier.
>Wenn Atmel ne simplen Portzugriff vergeigt gehören sie an die Wand >gestellt (und die Controller in die Tonne). Das ist schon klar. Wenn jemand sich aber nicht sicher ist, sollte er sich lieber die offizielle Doku angucken anstatt auf Leute zu hören, die Sachen wie "ich glaube...", "..vielleicht...", "...meiner Meinung nach..." etc von sich geben. Sollte keine Kritik an deinem Post sein.
@Schorsch >> in r16,portx >> i = PORTX; >Wenn du das in einem Takt schaffst, kriegste von mir ne Kiste Bier. [ ] Dir ist aufgefallen dass das einmal Assembler und einmal C ist. MFG Falk
[] Du weist, was ein C-Compiler aus "i = PORTX;" machnt.
@Rahul Der trollige >Das ist schon klar. Wenn jemand sich aber nicht sicher ist, sollte er >sich lieber die offizielle Doku angucken anstatt auf Leute zu hören, die >Sachen wie "ich glaube...", "..vielleicht...", "...meiner Meinung >nach..." etc von sich geben. Sollte keine Kritik an deinem Post sein. 100% Zustimmung. MfG Falk P.S. Ich jederzeit offen für substanzielle Kritik. Niemand hat die Weisheit mit Löffeln gefressen, auch ich nicht.
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.