Revision History ========================= Compiler Revision 4.99.70 30.Jan.2012 ------------------------- XMega ----- USB Treiber für XMegas implementiert. Dieser Treiber wurde auf extrem geringen Code Bedarf ausgerichtet (<2kB). Weitere Info im Standard Treiber Manual (USBsmart) Seite 88. Ein voll ausgebauter USB Treiber mit Interrupt Betrieb und bis zu 16 Endpoints wird folgen. Compiler Revision 4.99.69 23.Jan.2012 ------------------------- XMega ----- Diverse kleinere Bugs im Compiler und Simulator beseitigt. Alle Teile des Systems erweitert und verbessert Compiler Revision 4.99.68 16.Jan.2012 ------------------------- XMega ------ BootLoader (UART) implementiert. Standart Treiber Handbuch s. 222 Beispiel Programme in der Demos Directory in "XMega_Boot" Compiler Revision 4.99.67 09.Jan.2012 ------------------------- XMega ------ XMega Support im Simulator verbessert. FAT16 MMC SPI-SOFT erweitert. F16_MMCport = PortX.SS, PortY.SCK, PortZ.MOSI, PortW.MISO; Compiler Revision 4.99.66 02.Jan.2012 ------------------------- Datei-Pfad Problem im Simulator beseitigt. Stepper Treiber Prototyp/vorläufig ST L6470 implementiert. XMega ------ IRDA Beispiele komplettiert. Compiler Revision 4.99.65 26.Dez.2011 ------------------------- XMega ----- Bug im Simulator beseitigt. (XMega 64bit compare). Applikation Codesize Limit reduziert. Boot Bereich ausgeschlossen. Compiler Revision 4.99.64 12.Dez.2011 ------------------------- XMega ----- Der IRDA Treiber wurde durch zwei Funktionen erweitert. Compiler Revision 4.99.63 28.Nov.2011 ------------------------- RFID125 Treiber für RFID Reader implementiert. Mehr dazu im Standard Driver Manual Seite 188 Compiler Revision 4.99.62 21.Nov.2011 ------------------------- XMega ----- IRDA/IRcom Treiber für XMega UARTs implementiert. Mehr dazu im Standard Driver Manual Seite 76 Compiler Revision 4.99.61 14.Nov.2011 ------------------------- Kleiner Bug in Boot Application beseitigt. IDE PED32 ProjectInformations um BootApplication erweitert. XMega ----- Bug in generischen Bits z.B. SetBit(PortB, 3, true) beseitigt. Compiler Revision 4.99.60 07.Nov.2011 ------------------------- XMega ------ Neue Funkion implementiert: Procedure HardwareReset; führt einen echten Hardware Reset aus, analog zum Reset Pin. Der RC5 Treiber unterstützt jetzt auch die XMegas. Compiler Revision 4.99.59 31.Okt.2011 ------------------------- Die Funktionen IntToStr und ByteToHex sind jetzt auf den Typ Int8 erweitert. AVRco USB Treiber für 90USB182...Mega128USB -------------------------------------------- Die bisherigen Endpoint Adressen waren etwas unglücklich gewählt und entsprachen nicht ganz dem Standard, sind aber trotzdem legal. Um mehr dem allgemeinen Standard zu entsprechen wurden die Parameter jetzt dahingehend angepasst: alt: EP1 TX = $01 EP1 RX = $82 EP2 TX = $03 EP2 RX = $84 neu: EP1 TX = $01 EP1 RX = $81 EP2 TX = $02 EP2 RX = $82 Der Treiber und das Test Tool wurden entsprechend geändert. Compiler Revision 4.99.58 24.Okt.2011 ------------------------- XMega ------- Die neuen Instruktionen LAS, LAC und LAT komplett aus dem IO Bereich entfernt. Compiler Revision 4.99.57 17.Okt.2011 ------------------------- Type Checks verbessert. XMega ------- Bit-Typ Operationen geändert da RMW Operationen mittels LLAS und LAC mit Ports nicht funktionieren. Im Datenblatt Bereich in der Installation finden sich zwei PDFs die die Unterschiede zwischen "U" und non-"U" XMegas beschreiben. Die neuen "U"-Typen haben jetzt pro DAC zwei echte Kanäle die beim Init etwas anderst zu behandeln. Deshalb kann man jetzt auch beim Import gezielt die gewünschten Kanäle angeben. Beispiele: DAC_B = Chan0, REFEXTB; // chan0 only oder DAC_B = Chan1, REFEXTB; // chan1 only oder DAC_B = Chan01, REFEXTB; // both channels XMega UARTs ------------- Die UARTs können beim DEFINE in den Synchron Mode gesetzt werden: SerPortC0 = 57600, SyncMaster; // XCK is output oder SerPortC0 = 19200, SyncSlave; // XCK is input Manchmal ist es sinnvoll die UARTs zu sperren und wieder freizugeben. Diese Funktionen unterstützen das: procedure UartEnableRxXX( Ena : boolean); // Rx hardware ena/disable procedure UartEnableTxXX( Ena : boolean); // Tx hardware ena/disable wobei XX steht für C0, C1, D0, D1 etc. Compiler Revision 4.99.56 11.Okt.2011 ------------------------- Weitere kleine Bugs in der Bit-Verarbeitung beseitigt, verursacht durch die spezielle XMega Bit-Behandlung. Compiler Revision 4.99.55 10.Okt.2011 ------------------------- Zwei kleine Bugs in der Bit-Verarbeitung beseitigt, verursacht durch die spezielle XMega Bit-Behandlung. Compiler Revision 4.99.54 03.Okt.2011 ------------------------- FileOfText ---------- Bug in Write(Ln) FileOfText beseitigt wenn eine String Konvertierung beteiligt war. Simulator ---------- Ein paar Bugs bedingt durch die Erweiterung auf XMega beseitigt. XMegas ------- Ein paar Tests zeigten dass die clock Grenze von 32MHz ohne offensichtliche Probleme erhöht werden kann, möglicherweise bis zu 64MHz. Echte Tests wurden noch nicht durchgeführt um das wirkliche Limit herauszufinden. Dieses hängt wahrscheinlich von jedem speziellen XMega ab. Um solche Tests zu unterstützen wurde das OSCtype Define erweitert durch die Option "overdrive". Beispiel: OSCtype = int32MHz, PLLmul=5, prescB=1, prescC=1, overdrive; // 40MHz oder OSCtype = int32MHz, PLLmul=6, prescB=1, prescC=1, overdrive; // 48MHz oder OSCtype = int32MHz, PLLmul=7, prescB=1, prescC=1, overdrive; // 56MHz oder OSCtype = int32MHz, PLLmul=8, prescB=1, prescC=1, overdrive; //64MHz Die Option "overdrive" unterdrückt nur die entspr. Fehlermeldung bei Taktraten > 32MHz. Nichts weiter. XMega atomic instructions für Bit Verarbeitung ----------------------------------------------- Die Xmegas bieten eine Unmenge Erweiterungen für Port-Zugriffe. Eine wichtige ist dass man solche read-modify-write Funktionen wie Bit setzen, rücksetzen in Ports mit einem nicht unterbrechbaren "atomic" Befehl machen kann. Das ist extrem wichtig bei Interrupts und MultiTasking wenn mehrere Programm Teile manipulierend auf das gleiche Port zugreifen. Hier kann es passieren dass unmittelbar nach einem read-cycle ein Interrupt kommt der das Port verändert und diese Änderung durch das unterbrochene read-modify-write wieder aufgehoben wird. Der AVRco trägt dem Rechnung und benutzt dazu die atomic instructions OutSetX, DirSetX, OutClrX, DirClrX, OutTglX, DirTglX für IO-Port Bit setzen, rücksetzen und toggle. Das gleiche gilt für Bit-Manipulationen in SRAM Bytes. Hier werden die neuen Instruktionen LAS (setbit), LAT (clearbit) und LAT (toggle) benutzt. Compiler Revision 4.99.53 26.Sep.2011 ------------------------- XMegas ------- Mit dem Define ADCprescX lässt sich jetzt auch die Auflösung einstellen: ADCprescA = 4, 8; // clk div 4, resolution 8bits Compiler Revision 4.99.52 19.Sep.2011 ------------------------- Der Simulator AVRsim unterstützt jetzt auch die XMegas SerPorts bzw. UARTs mit ein paar kleinen Einschränkungen. Timer etc. und Interrupts bleiben weiterhin aussen vor. Compiler Revision 4.99.51 12.Sep.2011 ------------------------- Der Simulator AVRsim unterstützt jetzt auch die XMegas in einer Beta-Version. Ausser dem SysTick werden keine Interrupts unterstützt. Auch UARTs, Timer und andere Peripherie werden nicht unterstützt. In-circuit Debuggen mit dem ISP3-Debugger kommt in nächster Zeit. Compiler Revision 4.99.50 05.Sep.2011 ------------------------- Bug in wzTINA (TCP) beseitigt. Kleiner Bug BoolToStr beseitigt. Die Auto-Vervollständigung (CTRL+space) ist jetzt durch eine abschaltbare Record Vervollständigung erweitert (IDE PED32) Compiler Revision 4.99.49 29.Aug.2011 ------------------------- Kleiner Bug im Merlin Optimiser beseitigt. Die IDE PED32 speichert beim schliessen eines Projekts alle aktiven Merker/Bookmarks einer Datei so dass diese beim nächsten öffnen wieder zur Verfügung stehen. Neue Attribute für Variablen Deklaration. Diese Attribute zwingen den Compiler dazu eine Variable auf geradzahlige bzw. ein vielfaches davon zu legen: var st1 : string[16], Align2; bb : byte, Align4; Arr : tArr, Align8; Compiler Revision 4.99.48 26.Aug.2011 ------------------------- Neue Programmer updates für XMega Programmer. Beispiel BootApp mit BootMain vervollstandigt. Mehr im Standard Driver Manual im Paragraph "3.48 BootApplication und MainApplication" XMega ------- Neue Funktionen definiert durch den Import von XMegaSupport Function ReadProductionRow(loc : word) : byte; Function ReadUserRow(loc : word) : byte; Neue XMega Opcodes implementiert, LAT, LAC, LAS, XCH LAC Z, R15; LAT Z, _ACCA; LAS Z, _ACCB; XCH Z, R15; Compiler Revision 4.99.47 15.Aug.2011 ------------------------- XMega ------- Manche XMegas, z.B. 256A3B, besitzen keinen 16bit RTC Timer. Deshalb kann dieser nicht für den SysTick verwendet werden. Um trotzdem den SysTick zu benutzen zu können, kann jetzt auch ein belieger 16bit Timer dazu herangezogen werden. Weitere Infos im aktuellen Compiler Manual Seite 166. Boot Applikation für XMegas implementiert. Beispiel Programm: XMega_BootApp. Mehr dazu auch im Standard Treiber Manual Seite 209 Compiler Revision 4.99.46 08.Aug.2011 ------------------------- Kleiner Bug in ProcWaitFlag beseitigt. Support für Tiny4413 implementiert. Compiler Revision 4.99.45 01.Aug.2011 ------------------------- Volatile Switch für den Optimiser ---------------------------------- Im memory-mapped IO-Bereich (meistens $XData) kann es IO-Register geben die mehrmals hintereinander mit unterschiedlichen Daten beschrieben oder gelesen werden müssen. Der Optimiser erkennt dies normalerweise als redundant und entfernt diese "unnötige" Zugriffe. Um das zu verhindern gibt es die neuen "volatile" Schalter. Diese zwingen den Optimiser hier nichts zu verändern. Volatile bedeutet die Daten sind "verloren" bzw. bleiben so nicht erhalten. Ein Beispiel dafür wäre z.B. eine Hardware Pipe. {$OPTI VOLATILE_ON} die folgenden Daten werden als volatile behandelt, keine Optimierung {OPTTI VOLATILE_OFF} die folgenden Daten werden als non-volatile behandelt, Optimierung {$OPTI VOLATILE_DFT} die folgenden Daten werden default behandelt Weitere Infos dazu im aktuellen Compiler Manual Seite 195 Bug in IncToLim(int8) und DecToLim(int8) beseitigt. XMegas: ------- Kleiner Bug in Start_Processes, SysTickDisable, SysTickEnable, SysTickStart und SysTickStop beseitigt. Compiler Revision 4.99.44 19.Juli.2011 ------------------------- Weitere Differenzen bei SerPort und SerPort1 beseitigt. "Define_Fuses" Anweisungen erweitert: AutoRelease = true/false; ProgUsrRow = true/false; // XMegas Compiler Revision 4.99.43 18.Juli.2011 ------------------------- USB Treiber verbessert. Differenzen bei SerPort und SerPort1 beseitigt. Neuer Button in der IDE: Syntax Check, benötigt keinen Dongle und erzeugt kein ASM File. Neuer Menu Punkt in der IDE: Tools/USB Viewer DSC Files für neue AVRs erstellt: Mega128RFA1, XMega64A3U, XMega128A3U, XMega192A3U, XMega256A3U, XMega16A4U, XMega32A4U, XMega64A4U, XMega128A4U. Alle neuen XMegas mit internem USB. Compiler Revision 4.99.42 27.Juni.2011 ------------------------- Beispiel Programm XMega_SerPortFast mit 2MBit/sec Baudrates Mega16-32HVB Unterstützung durch neue DSC Files. Bug in TINA Treiber (MSPI_x) beseitigt. Compiler Revision 4.99.41 06.Juni.2011 ------------------------- Update/Download Problem im PED32 beseitigt. Englisch sprachige Popup Dialog Boxen wieder eingeführt. Font im PED Editor lässt sich jetzt fast beliebig einstellen. Max. Unit Files auf 128 erweitert. Fehler in Meg48/88/168/328 DSC Files beseitigt. Compiler Revision 4.99.40 30.Mai.2011 ------------------------- Pointer auto decrement implementiert, benutzt das AVR Pointer pre-decrement. Beschränkt auf 8bit Typen. bb:= p^--; p^--:= bb; p--; Kleiner Bug im Optimiser beseitigt. MIRF86 implementirt. Unterstützt den Atmel AT86RF231 2.4GHz chip Beispiel Programme in ..\Demos\MIRF86 Ausführliche Info im Profi-Treiber-Manual Compiler Revision 4.99.39 23.Mai.2011 ------------------------- Kleiner Bug im Optimiser beseitigt. Error Handling im PED und Compiler verbessert. Compiler Revision 4.99.38 16.Mai.2011 ------------------------- Der Soft-I2C Treiber wurde um NOPs0..NOPs10 erweitert. Die Programmer ISP3, UPP1 und UPP2 unterstützen jetzt auch die TINY 4 - 5 - 9 - 10 - 20 Neuer AVRprog, PackProg und DSC Files enthalten. Programmer Firmware Updates enthalten. Geräte älter als 04/2010 die diese Tinys unterstützen sollen, müssen zu E-LAB eingeschickt werden damit diese eine komplett neue Firmware erhalten. Compiler Revision 4.99.37 09.Mai.2011 ------------------------- Die Random Funktion wurde um RandomSeed erweitert; Procedure RandomSeed(s : word); XMega ------ Die Random Funktion wurde zur Verbesserung mit einem freilaufenden internem RC Oszillator (RTC) verknüpft. Compiler Revision 4.99.36 02.Mai.2011 ------------------------- Programmer und XMega -------------------- Alle Programmer (ISP3, UPP1, UPP2) unterstützen jetzt die XMega Programmierung. Info hier: http://e-lab.de/pdf/XMegaProg.pdf Neuer AVRprog.exe und PackProg.exe im update enthalten. XMega ----- Compiler unterstützt jetzt den speziellen Flash Speicher UserSignatureRow. Mehr im aktuellen Compiler Handbuch. Auch die Programmer können jetzt diesen Flashbereich programmieren Compiler Revision 4.99.35 18.Apr.2011 ------------------------- Bit Test mit LongWord implementiert. Bug in Inc/DecToLimit(p^.int8) beseitigt. Kleiner Bug im Optimiser beseitigt. Compiler Revision 4.99.34 04.Apr.2011 ------------------------- Bug in Inc/DecToLimit(int8) beseitigt. Kleiner Bug im Optimiser beseitigt. Bug in BootApp beseitigt. Compiler Revision 4.99.33 21.Mar.2011 ------------------------- Neue Funktion: Function Assigned(p : anypointer) : boolean; Gibt ein true zurück wenn der Pointer <> NIL ist. AVR USB -------- Der USB Treiber für den Mega128USB ist fertig. Ausführliche Infos im Profi Treiber Manual. Ein Demo Programm befindet sich hier: ..\AVRco\Demos\EvaBoard128 Compiler Revision 4.99.32 28.Feb.2011 ------------------------- Bug in Return(const_BitSet) beseitigt. Problem mit Pfaden in WIN7/64 beseitigt. Error Display verbessert. Neue AVRs aufgenommen: Mega8U2-16U2-32U2 Mehrere kleinere Bugs beseitigt. Compiler Revision 4.99.31 07.Feb.2011 ------------------------- PED32 IDE --------- Warnings in Units verbessert. Neuer Font "PED32 Regular" = "PED Cour" wird installiert. Der Font entspricht dem Courier, hat aber eine durchgestrichene Null. Dieser Font kann im Dialog "IDE/General Options/Font&Color" eingestellt werden. WIN7 ---- Sollte "PED Cour" nicht zur Verfügung stehen, dann ein Doppel Click auf "PED32 Regular" im PED Verzeichnis/Fonts und Installieren clicken. WIN-XP ------ Sollte "PED Cour" nicht zur Verfügung stehen, dann ein öffnen von Systemsteuerung - Schriftarten - Menu Datei - neue Schriftart installieren "PED Cour". XMega ------ Bug in TWIstatXX beseitigt. Compiler Revision 4.99.30 31.Jan.2011 ------------------------- Soft I2C Delay mit NOPs erweitert: Define I2Cclk = PortBit, NOPsX; wobei "X" von 0..7 laufen kann. NOPs0, NOPs1... Compiler Revision 4.99.29 24.Jan.2011 ------------------------- Weiterer Bug im Optimiser beseitigt. Compiler Revision 4.99.28 10.Jan.2011 ------------------------- Kleiner Bug im Optimiser beseitigt. Compiler Revision 4.99.27 20.Dez.2010 ------------------------- Kleiner Bug in exportierter Unit-Funktion mit String-Type als Resultat beseitigt. XMega ----- Funktionen SetSerDataBits und SetSerStopBits implementiert. Compiler Revision 4.99.26 13.Dez.2010 ------------------------- Bug in der Stepper Lib, verursacht durch den XMega Support, beseitigt. Bug in WaitPipe(RxBuffer1) beseitigt. Bug in trunc(const) beseitigt. Kleiner Bug im Optimiser beseitigt. Compiler Revision 4.99.25 30.Nov.2010 ------------------------- Neu: LCDs mit ST7036 3.3..5V parallel, I2C, SPI. Beispiele: AVR LCD7036i I2C Mode AVR LCD7036p Port Mode AVR LCD7036s SPI Mode TINA + WizNet Treiber implementiert. Beispiele: AVR wzTinaDNS AVR wzTinaSNTP wzTinaServer und wzTinaClient werden folgen. Diskussionen und Reports bitte im Forum "Ethernet + TINA + WizNet" einstellen (User Miparo). XMega ----- Implementiert: LCDs mit ST7036 3.3V parallel, I2C, SPI. Beispiele: XMega_LCD7036s SPI Mode XMega_LCD7036p Port Mode XMega_LCD7036i I2C Mode Compiler Revision 4.99.24 08.Nov.2010 ------------------------- XMega ----- Single-Wire (Half-Duplex) SLIPport implementiert. Neues Beispiel: XMega_SLIPsw Compiler Revision 4.99.23 18.Okt.2010 ------------------------- Alle verfügbaren Beispiele befinden sich jetzt im PED32 im Projekt Dialog im TAB "AVRco samples". Diese Projekte sind immer read-only und werden bei updates auch immer wieder überschrieben! XMega ----- SoftPWM Treiber implementiert. Neues Beispiel: XMega_SoftPWM Compiler Revision 4.99.22 11.Okt.2010 ------------------------- Kleiner Bug im Optimiser beseitigt. XMega ----- Kleiner Bug in SPI Treiber beseitigt. Kleiner Bug im FreqCount Treiber beseitigt. Neues Beispiel: XMega_LCDgraph Compiler Revision 4.99.21 04.Okt.2010 ------------------------- Kleiner Bug im Optimiser beseitigt. XMega ----- Bug in RTC Treiber beseitigt. Die Standard SPI-Treiber wurden um das Define SPI_SSx = none; erweitert. External RAM und Memory Mapped IO implementiert mit XData0..XData3 Siehe Compiler Manual und Demos in der Directory "XMega_XData". Beispiel Programm XMega_RTC hinzugefügt. Compiler Revision 4.99.20 20.Sep.2010 ------------------------- Bug in LANport mit 16bit Adresse beseitigt. Kleiner Bug im Optimiser beseitigt. Compiler Revision 4.99.19 06.Sep.2010 ------------------------- Mehrere kleine Bugs (wegen XMega Support) beseitigt. XMega ----- Der Speech Treiber unterstützt jetzt auch den internen XMega DAC Der DDS10 Treiber unterstützt jetzt auch den internen XMega DAC Der FAT16 Treiber unterstützt jetzt auch SPI_C..SPI_F Beispiel Programm in ..\Demos\XMega_FAT16 Compiler Revision 4.99.18 30.Aug.2010 ------------------------- Bug in TWI-Slave beseitigt. XMega ----- Support Funktionen implementiert: Read/Write LockBits, Read Fuses, Read ID etc. Beispiel in Demos\XMega_Support PulseCount Erreignis Zähler implementiert. Beispiel in Demos\XMega_PulseCount FreqCount Frequenz Zähler implementiert. Beispiel in Demos\XMega_FreqCount Compiler Revision 4.99.17 23.Aug.2010 ------------------------- XMega ----- System_Reset implementiert. Erzeugt einen echten Hardware Reset! TWI Treiber TWI_C .. TWI_F implementiert. Beispiel in Demos\XMega_TWI Externe Interrupts mit PortIntA .. PortIntR implementiert. Beispiel in Demos\XMega_PortInt Externe Interrupts mit PCintA .. PCintR implementiert. Beispiel in Demos\XMega_PCint Compiler Revision 4.99.16 16.Aug.2010 ------------------------- Bug in SizeOf(string) beseitigt. ExitLoop im CASE block implementiert. Kleiner Bug im Optimiser beseitigt. XMega ----- XMega ADC auf 8/16 Kanäle erweitert. Beispiel in Demos\XMega_ADC XMega QDEC Quadratur Incremental Encoder implementiert. Beispiel in Demos\XMega_QDEC Compiler Revision 4.99.15 09.Aug.2010 ------------------------- XMega ----- Die XMegas haben bis zu 24 PWM Kanäle. Diese werden jetzt alle unterstützt. Beispiel in Demos\XMega_PWM Für den XMega SysTick gibt es jetzt eine "adj" Option. Damit wird der Tick exakt auf zum Beispiel 10msec Auflösung eingestellt. Define SysTick = 10, adj; Compiler Revision 4.99.14 02.Aug.2010 ------------------------- Diverse kleine Bugs im Zusammenhang mit XMega sowie Fix64 beseitigt. Compiler Revision 4.99.13 26.Juli.2010 ------------------------- Bug in Function GetBankNum() beseitigt. Bug in ReadLn(SerInp, array of string) beseitigt. Compiler Revision 4.99.12 19.Juli.2010 ------------------------- Bug in TickTimer beseitigt. Bug in Integer and (const integer) beseitigt. Die SerPort Funktionen (1. SerPort) sind jetzt alle auch mit dem Suffix "1" zu erreichen. RxBuffer1, TxBuffer1, SerInp1, SerOut1 etc. Neuer und verbesserter TINA-DHCP Treiber. XMega ----- MSPIM Modes der UARTS implementiert. XMega UART arbeitet als SPI Master. MSPI_C0..MSPIF1. Beispiel in Demos\XMega_MSPI TINA-DHCP für XMegas portiert. Beispiel in Demos\XMega_DHCP Compiler Revision 4.99.11 12.Juli.2010 ------------------------- Fix64 ------ Dezimal Separator wurde in StrToFix64 nicht beachtet. Fixed. XMega ------ Digital Synthesizer DDS10 auf XMega portiert. Projekt in Demos Directory unter "Xmega_DDS10". Sprach Ausgabe SpeechPort auf XMega portiert. Projekt in Demos Directory unter "Xmega_Speech". Schrittmotor Controller StepPort auf XMega portiert. Projekt in Demos Directory unter "Xmega_Stepper". Compiler Revision 4.99.10 06.Juli.2010 ------------------------- Fix64 ------ Weitere Sqrt Funktion "SqrtFix64" ist in den Beispiel Programmen enthalten. Diese liefert die Quadratwurzel des Fix64 Arguments mit 9 fract Digits. Achtung: SqrtFix64 hat einen Frame Bedarf von 64 Bytes! Laufzeit 5msec@16Mhz. Sqrt() Laufzeit 0.6msec@16Mhz aber Genauigkeit nur 5 frac Digits. Die Unit uFix64 enthält eine sehr genau (9digits) und schnelle (2.2msec) Sqrt Funktion "Fix64Sqrt". Beispiel Programm für die Math Funktionen ist im Verzeichnis ..\E-Lab\AVRco\Demos\Fix64 Beispiel Programm für die Trigonometrie Funktionen ist im gleichen Verzeichnis. XMega ----- Der TINA Treiber ist jetzt auch für den XMega implementiert. Compiler Revision 4.99.09 28.Juni.2010 ------------------------- Bug in Array[Int8] beseitigt. Fix64 ------ Fix64 type ist jetzt komplett implementiert. Alle Basis Funktionen und Operatoren werden in allen AVRco Systemen unterstützt. Die höheren Math, Trigonometrie und Logarithmus Functionen sind in der Unit "uFix64" welche nur in der Profi Version enthalten ist. XMega ------ Neuer Compiler Switch "REUTILIZE". Dieser dient dazu dass Timer, SPI und TWI für verschiedene Treiber doppelt benutzt werden können. Wenn z.B. der Treiber A den SPI_C benutzt und der Treiber B soll auch SPI_C benutzen kommt es zu einer Fehlermeldung. Um dies trotzdem zuzulassen wird bei der zweiten Verwendung des SPI_C im DEFINE dieser Schalter vorangestellt: Define DriverA = SPI_C; {$REUTILIZE SPI_C} DriverB = SPI_C; Zulässige Argumente sind TIMER_C0..TIMER_F1, SPI_C..SPI_F, TWI_C..TWI_F TickTimer und TickTimer2 für XMegas implementiert: Define TickTimer = Timer_C0; TickTimer2 = Timer_C1; oder TickTimer = Timer_D0, PortE, 4; TickTimer2 = Timer_D1, PortE, 5; Den TickTimer2 gibt es nur im XMega. Neue Function: Procedure EnableIntsX; Diese gibt den globalen XMega Interrupt wieder frei ohne die Levels zu verändern. Compiler Revision 4.99.08 21.Juni.2010 ------------------------- TINA UDP Treiber --------------- Der TINA Treiber unterstützt jetzt auch den neuen ENC424J600. Weiterhin werden jetzt auch neben dem Standard SPI die MSPIs und Soft_SPI unterstützt: TINAdriver = ENC424J600; // TINAdriver = ENC28J60; TINAport = SPI, PortB, 0; // SPItyp, SS_Port, SS_Pin XMega ------ Jetzt implementiert: Procedure Enable_JTAGport; Procedure Disable_JTAGport; Compiler Revision 4.99.07 14.Juni.2010 ------------------------- Bug in SysTick = 10.xx beseitigt. XMega ------ SysTick von RTC compare interrupt auf RTC overflow interrupt geändert. Fix64 Typen ------------ Multiply "*" Divide "/" und SQR() implementiert. Trigonometrie und Logarithmen folgen in separater Unit "uFix64". Compiler Revision 4.99.06 07.Juni.2010 ------------------------- Bug in FlushBuffer(RxBuffer3) beseitigt. Neue Funktionen: Function StrToFix64(st : string) : fix64; Function StrToInt(st : string) : Int64|Word64; XMega ----- Bug in XMega SysTick timing beseitigt. EnableInts und Start_Processes erweitert um "Levels". Levels ist bestimmt für das Steuerregister PMIC Control. Procedure EnableInts(levels : byte); Procedure Start_Processes(levels : byte); Compiler Revision 4.99.05 31.Mai.2010 ------------------------- Neue Funktionen: Function Sqrt(i : int64) : int64; Function Sqrt(f : fix64) : fix64; Ein paar kleine Bugs in Fix64 Math beseitigt. Für TWIslave Mode ohne Handshake gibt es jetzt zwei Status bytes: TWIslvTxCount und TWIslvRxCount. Bei jedem empfangen bzw. gesendeten Byte wird das zugehörige Byte um 1 inkrementiert. Compiler Revision 4.99.04 25.Mai.2010 ------------------------- Fix64 Typen ------------ Function Fix64ToStr(const f : Fix64) : string; // with format options Function Fix64ToHex(const f : Fix64) : string; implementiert. Compiler Revision 4.99.03 17.Mai.2010 ------------------------- Bug im LCDport Treiber mit 2 Enables beseitigt. Kleine Fehler mit Fix64 im Compiler und SIM beseitigt. TWI_BRxxx erweitert um TWI_BR500, TWI_BR600 und TWI_BR800 Beide ModBus Treiber um SerPort3 und SerPort4 erweitert. Compiler Revision 4.99.02 10.Mai.2010 ------------------------- Fehler in Sgn(Int64 | Fix64) beseitigt. Compiler Revision 4.99.01 04.Mai.2010 ------------------------- Fehler in der Installation beseitigt. (AVRco) Compiler Revision 4.99.00 03.Mai.2010 ------------------------- Neue Installation ----------------- Problem mit neuem USB Treiber, "Programmer not found" wenn AVRprog geöffnet ist wurde behoben. Fehlermeldung bei Installation unter 64bit Windows wurde behoben. Aber bei ein paar 64bit Systemen kann es bei einem Compiler Run zu einem Runtime Error 217 kommen ... Fix64 Typen ------------ Funktionen Frac(fix64), Int(Fix64), Round(Fix64), Trunc(Fix64) und IntToFix64(i : ordinal) implementiert. Compiler Revision 4.98.00 20.Apr.2010 ------------------------- Alle Teile des Systems wurden jetzt 64bit kompatibel umgestellt. Damit ist AVRco und seine Sub-Systeme nun unter XP, Vista und Windows7 lauffähig, sowohl unter 32bit als mit 64bit Systemen. Compiler Revision 4.97.16 05.Apr.2010 ------------------------- Neue Funktionen: Procedure PushRegs; // push regs _ACCALO.._ACCFHI Procedure PopRegs; // pop regs _ACCALO.._ACCFHI IDE PED32 verbessert und erweitert. Compiler Revision 4.97.15 29.Mar.2010 ------------------------- Alle 64bit Typen (Word64, Int64, Fix64) werden jetzt auch von diesen Funktionen unterstützt: UserData, BankPort, sign, sgn, min, max, negate, not, lower, higher, within, ValueInRange, ValueTrimLimit Noch nicht implementiert für 64bit Typen sind: ValueInTolerance, ValueInToleranceP XMega Support =============== Die Read-Modify-Write Operationen wie SetBit, Incl, Excl, Toggle etc. die Ports als Ziel haben, benutzen jetzt die Register OUTSET, OUTCLR und OUTTGL als "atomic" Zugriffe, d.h. sie sind nicht durch Interrupts unterbrechbar. Compiler Revision 4.97.14 22.Mar.2010 ------------------------- Alle "MOD" Funktionen hatten bisjetzt immer ein positives Resultat. Ab jetzt haben alle "MOD" Funktionen auch ein negatives Resultat bei Int8, Integer, LongInt und Int64 wenn das Ergebnis negativ war. Damit wurde dies dem Verhalten der meisten Programmiersprachen angeglichen. http://mathforum.org/library/drmath/view/52343.html Wenn man trotzdem bei Integern immer positive Ergebnisse braucht dann muss man die ABS() Funktion dazu benutzen. Diverse Math Funktionen für Fix64 erweitert. XMega Support =============== Das Define der DACs wurde geändert: REFaVCC implementiert. Compiler Revision 4.97.13 08.Mar.2010 ------------------------- Der neue Typ Fix64 wird jetzt auch im Simulator unterstützt. Bug in DEC(Int64, const) beseitigt. XMega: Bug in WaitPipe(RxBuffer) beseitigt. XMega: Bug in SerPortSelect beseitigt. Compiler Revision 4.97.12 01.Mar.2010 ------------------------- Mehrere kleinere Verbesserung in der Code Generierung. Compiler Revision 4.97.11 22.Feb.2010 ------------------------- Funktion SerBaud(bbbb) auf 1MBaud erweitert. SerPort_Send1 implementiert. Avra's 32bit Fixed Point Library in den Demos unter Fix32Math. Compiler Revision 4.97.10 15.Feb.2010 ------------------------- XMega Support: ============== DA-Converter DAC_A und DAC_B implementiert. Compiler Revision 4.97.09 08.Feb.2010 ------------------------- XMega Support: ============== DSC Files für alle XMegas erstellt. Compiler Revision 4.97.08 01.Feb.2010 ------------------------- SizeOf(xArr[1]) ist jetzt implementiert. FAT16 File Types in Records implementiert. FEdit Unit als Source im System enthalten. XMega Support: ============== ADC_A und ADC_B sind implementiert. Weitere Infos im Standard-Treiber-Manual Compiler Revision 4.97.07 25.Jan.2010 ------------------------- Kleiner Bug im Optimiser beseitigt. Bug in CheckStackValid(Task) mit Mega256 beseitigt. SerInp1, SerOut1 und SerStat1 implementiert. Compiler Revision 4.97.06 18.Jan.2010 ------------------------- XMega Support: ============== Hardware SPI implementiert: SPI_C, SPI_D, SPI_E, SPI_F Treiber die SPI benutzen: LCDport, MIRF24port Compiler Revision 4.97.05 11.Jan.2010 ------------------------- Kleiner Bug im Optimiser fixed. Bug im File pTiny2313.dsc beseitigt (PWM). XMega Support: ============== SerPorts implementiert. Beispiel Programm "XMega_SerPort" in der Demos Directory unter "XMega_SerPort" Weitere Infos im Standard-Treiber-Manual SlipPorts implementiert. Beispiel Programm "XMega_SLIP" in der Demos Directory unter "XMega_SLIPport" Weitere Infos im Profi-Treiber-Manual Compiler Revision 4.97.04 04.Jan.2010 ------------------------- Kleiner Bug im ModBus fixed. (falsche Darstellung im ModBus-Simulator) ************************************************ ************************************************ INSTALLATION ============ Dieses Programm wird nach den Regeln von Windows installiert und registriert. Deshalb werden Einträge in die WIN REGISTRY erzeugt. Die Vollversion enthält einen Programmierer und JTAG-ICE zum Anschluss an ein USB Port des PCs. Dieser wirkt als Dongle für das System. Ist er nicht vorhanden, so arbeitet der Compiler im Demo-Mode! System Anforderungen ===================== Windows2000 oder XP ist Voraussetzung. Bei WIN200 min 512MByte RAM Bei XP min 512MByte, besser sind 1MBytes VISTA wird zur Zeit noch nicht unterstützt. DE-INSTALLATION =============== Zum kompletten de-installieren dürfen die angelegten Directories und Files nicht von Hand gelöscht werden. Bitte benutzen Sie "Start|Einstellungen| SystemSteuerung|Software|DeInstallieren" und geben Sie dann "AVRco" an. Das komplette Paket wird damit gelöscht incl. aller Verzeichnisse. Nach-INSTALLATION ================= Um sicher zu gehen, dass immer die aktuelle Version installiert wird muss unbedingt die Update/Download Funktione in der IDE PED32 benutzt werden. Eine neue Version kann über die alte installiert werde. Es gehen keine Projekte oder Einstellungen verloren. Compiler Status =============== Zur Zeit bekannte Fehler: Compiler: Die Funktion IntegrateI hat noch einen Bug bei negativen Werten. Assembler: keine Simulator: in Beta Phase Editor: keine Einschränkungen: Das Überschreiben von vordefinierten Typen, Variablen, Konstanten, Funktionen und Prozeduren ist zur Zeit noch nicht möglich. Die Wertigkeit der Operatoren (* AND SHR etc.) wird z.Zt. noch nicht überall eingehalten. Deshalb ist das Klammern von Ausdrücken unbedingt notwendig. Strings ======= Das folgende String Concat bringt ein unerwünschtes Resultat: str:= str1 + str; Das funktioniert: str:= str + str1; Nicht implementiert: "With" Konstrukte mit Records in Records Double Precision Float ist noch nicht implementiert! Sollten Sie irgendwelche Probleme oder Fehler feststellen, so sind wir Ihnen für eine Nachricht dankbar. Wir werden versuchen, möglichst umgehend für Abhilfe zu sorgen. Wenn Sie Sources Files mitschicken, bitte nur im ZIP-Format. TIP: ---- Testen Sie Ihr Programm möglichst ausgiebig mit dem Simulator. Falls der Frame zu klein ist, erhalten Sie hier eine Fehlermeldung. Die tatsächliche Frame und Stack Belegung können Sie hier durch einen Click auf die Taste oben im Stack/Frame Window feststellen. AVRco Simulator AVRsim ====================== Eine Bildschirm Auflösung von 1000x800 ist sinnvoll. Besser ist 1200x1000 Viel Spass beim Arbeiten mit AVRco und AVRsim.