Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > Hallo Nadine, > > > > > > ich nehme an das es das nicht mehr gibt da die Ports der AVR32 32-Bit lang sind > > > und nicht wie beim MEGA 8-Bit. Dort hat dann ein Port in ein Byte gepasst. 32 Bit > > > wären ja schon eine FLOAT-Zahl. > > > > > > Mir würde nur die Möglichkeit einfallen, dass Du Dir 8 Eingänge eines Ports raussuchst > > > und diese 8 Eingänge einzeln mit Port_ReadBit einliest. Aus diesen 8 musst Du Dir > > > dann Dein eigenes Byte zusammensetzen. > > > > > > VG, Tobias > > > > > > > > > > > > > Hallo zusammen, > > > > > > > > das ist mein erster Forumeintrag und ich hoffe das mir jemand helfen kann. > > > > > > > > Ich benutzte für ein Projekt die AVR32 Unit mit der ich eigentlich sehr zufrienden bin. > > > > Zuvor habe ich für andere Projekte das Mega 128 Board genutzt. > > > > > > > > Jetzt stoße ich leider mit der AVR32 Unit auf ein Probelm was ich vorher nicht bedacht habe, > > > > und zwar das Auslesen eines ganzen Ports. > > > > > > > > Das war mit dem Mega 128 nicht das Problem, mit der Zeile: > > > > > > > > - ReadPort A ' ,wurde der Port eingelesen und als Byte etc. zurückgegeben. > > > > > > > > Aber wie realisiere ich das jetzt mit der AVR32 Unit? > > > > Weil hier gibt es diese Function nicht mehr. > > > > > > > > Danke schon mal im voraus > > > > > > > > > > Hallo Tobias, > > Danke für deine schnelle Antwort. > > Ich habe das Ganze jetzt mal probiert mit den einzelnen Bits einlesen. > > Hier ist der Code dazu: > > <basic> > > 'Datenrichtung der Pins als Input deklarieren > > Port_Attribute(P19, PORT_ATTR_INPUT) > > Port_Attribute(P20, PORT_ATTR_INPUT) > > Port_Attribute(P21, PORT_ATTR_INPUT) > > Port_Attribute(P22, PORT_ATTR_INPUT) > > Port_Attribute(P23, PORT_ATTR_INPUT) > > Port_Attribute(P24, PORT_ATTR_INPUT) > > > > 'zur Übersicht werden die Pin Einlesebefehle als Bit-Stelle definiert > > #define BIT_0 Port_ReadBit(P19) > > #define BIT_1 Port_ReadBit(P20) > > #define BIT_2 Port_ReadBit(P21) > > #define BIT_3 Port_ReadBit(P22) > > #define BIT_4 Port_ReadBit(P23) > > #define BIT_5 Port_ReadBit(P24) > > > > 'Mit Bitschiebeoperator werden die einzelnen Pin Zustände an ihren Index gesetzt > > PortWert = ((BIT_0 << 0) Or (BIT_1 << 1) Or (BIT_2 << 2) Or (BIT_3 << 3)Or (BIT_4 << 4)Or (BIT_5 << 5)) > > </basic> > > > > Das Ganze funktioniert soweit auch, > > aber ich habe trotzdem noch ein kleines Problem. > > > > Ich möchte damit ein 6 Bit Signal einlesen welches binär von 0 - 49 zählt > > mit einer Frequenz von 2500Hz. > > > > Ich habe mir die Zahlenreihe ausgeben lassen und es wird wie erwartet von 0 - 49 durchgezählt. > > Bis auf einige Ausreißer, die Ausgabe sieht z.B. dann so aus: > > 0,0,1,1,3,2,3,3,4,4,... > > > > die 3 ist hier der Fehler und meine Vermutung ist, > > daß während des einzeln Bit einlesens, gerade um +1 hochgezählt wird und somit ein, > > sozusagen gemischtes Signal eingelesen wird. > > > > Ich hoffe man kann mir folgen bei der Problematik wie ich sie hier dargestellt habe. > > > > Meine Frage ist, ob ich mein Code irgendwie verbessern kann um das zu verhindern. > > > > gruß nadine > > > > > > > > Hallo Nadine, > > die inkonsistenten Daten wirst du nicht mit Codeoptimierung > wegbekommen. Deine Inputquelle muss einen Trigger geben wann > ausgelesen werden darf. Am besten dann in einem externen > Interrupt auslesen. > > Gruß Torsten > > <code> > byte by_bit = 0x01 > byte by_port_value = 0x00; > for(byte by_port_bit = P19; by_port_bit <= P24; by_port_bit++) > { > if(Port_ReadBit(by_port_bit) > by_port_value = by_port_value | by_bit; > > by_bit = by_bit << 1; > } > </code> >