assignments of a variable expression result to a PORT.bit now produces atomic access to the I/O PORT’s bit using the SBI and CBI instructions, if the I/O PORT address is in the 0...31 range
the EEPROM writing routine now periodically generates a watchdog reset while waiting the write to complete
ктонить могет пояснить чо это значит? ато я непонял
limitations: - the compiled code size is restricted to 1kbyte (512words) for chips with less then 2kwords of FLASH and 2kbytes (1kword) of FLASH for the rest of chips - the libraries for the PCF8563, PCF8583, DS1302, DS1307 REAL TIME CLOCKS, DS2430, DS2433 EEPROMs are not available - interrupt driven serial communication code generation by the CodeWizardAVR is disabled.
типа усарт по прерыванию не работает чтоли?
Добавлено спустя 6 минут 53 секунды: аааааааа шикарно
скобочки подсвечиваются и автозаполнение функций появилось и скобочки сворачиваются красиво мммммм и очищалка ранее созданных файликов компиляции появилась и коментировалка выбранного блока и отступ выбранного блока и хэлп конкретно подрос...
UncleSam писал(а):Может я что-то не понял, но только что откомпилил прогу в прошивку размером: 2091 words (4182 bytes), 51,0% of FLASH(для Mega8), на CodeVisionAVR Evaluation V2.03.3. А ведь написано:Free, 2kbytes code size limited version.
лимит в 2к проскочил. похоже не всегда срабатывает. есть неприятный момент, нельзя несколькими CodeVisionAVR V2.03.3 работать с одним файлом. к примеру я счас делаю общий файл с функциями для двух тинек, и работаю приставив к названию exe-шника цифру (cvavr_1.exe,cvavr_2.exe) сразу в нескольких CodeVisionAVR. Версии V1.25.2, V1.25.5 (V1.25.9 не пробовал) позволяют так работать. Меняешь чтото в одном проекте, второй автоматом подхватывает изменения. Новый V2.03.3 не дает так хитрить, просто не запускается, использовать совместно с другой версией тоже не дает. может из затого что демо. размер hex файла на выходе тоже больше чем у более ранних версий.
Пролемма в следующем. При создании массива, если их поменять местами, то происходит глюк в другом массиве. по идее разницы то ни какой быть не должно!!!
Вот по этому , я и ищу более стабильную версию компилятора!
Код не компится, дает банальные ошибки в количестве 33. Может у меня библиотека не полная или неправильные файлы. Вот код, кому не трудно скомпите и в HEX предоставьте, очень надо.
_delay_ms(5000); // connect reset of bad chip to gnd now
// toggle xtal1 at lease 6 times for(i=0;i<8;i++){ PORTD|=_BV(X_XTAL1); _delay_ms(10); PORTD&=~_BV(X_XTAL1); _delay_ms(10); } // set prog enable pins (pagel is gnd, xa0, xa1, bs1 - zero) // PD4,PD5,PD6 PORTD&=~(_BV(X_XA0)|_BV(X_XA1)|_BV(X_BS1)); PORTD|=_BV(X_WR); // write disables
_delay_ms(5000); // connect reset of bad chip to +12 NOW
// SET OE HIGH PORTD|=_BV(X_OE);
DDRB=0xff;
// chip erase //Set XA1 to 1, XA0 to 0. This enables command loading. PORTD|=_BV(X_XA1); PORTD&=~_BV(X_XA0); // Set BS1 to “0”, BS1 - PD4 PORTD&=~_BV(X_BS1); // Set DATA to command PORTB=0b10000000; //Give XTAL1 a positive pulse. This loads the command., XTAL1 - PD1 PORTD|=_BV(X_XTAL1);_delay_ms(10);PORTD&=~_BV(X_XTAL1);_delay_ms(10); // Give WR a negative pulse. This starts the Chip Erase. RDY/BSY goes low. PORTD&=~_BV(X_WR);_delay_ms(10);PORTD|=_BV(X_WR);_delay_ms(10);
// wait a bit _delay_ms(1000);
// load default data for FUSE low byte //Set XA1 to 1, XA0 to 0. This enables command loading. PORTD|=_BV(X_XA1); PORTD&=~_BV(X_XA0); // Set BS1 to “0”, BS1 - PD4 PORTD&=~_BV(X_BS1); // Set DATA to command PORTB=0b01000000; //Give XTAL1 a positive pulse. This loads the command., XTAL1 - PD1 PORTD|=_BV(X_XTAL1);_delay_ms(10);PORTD&=~_BV(X_XTAL1);_delay_ms(10); // load data PORTD&=~_BV(X_XA1); PORTD|=_BV(X_XA0); PORTB=0b11100001; // DEFAULT VALUE FOR LOW FUSE BYTE PORTD|=_BV(X_XTAL1);_delay_ms(10);PORTD&=~_BV(X_XTAL1);_delay_ms(10); // Set BS1 to “0” and BS2 to “0”. PORTD&=~_BV(X_BS1); PORTD&=~_BV(X_BS2); // Give WR a negative pulse. This starts the Chip Erase. RDY/BSY goes low. PORTD&=~_BV(X_WR);_delay_ms(10);PORTD|=_BV(X_WR);_delay_ms(10);
// load default data for HIGH low byte //Set XA1 to 1, XA0 to 0. This enables command loading. PORTD|=_BV(X_XA1); PORTD&=~_BV(X_XA0); // Set BS1 to “0”, BS1 - PD4 PORTD&=~_BV(X_BS1); // Set DATA to command PORTB=0b01000000; //Give XTAL1 a positive pulse. This loads the command., XTAL1 - PD1 PORTD|=_BV(X_XTAL1);_delay_ms(10);PORTD&=~_BV(X_XTAL1);_delay_ms(10); // load data PORTD&=~_BV(X_XA1); PORTD|=_BV(X_XA0); PORTB=0b10011001; // DEFAULT VALUE FOR HIGH FUSE BYTE PORTD|=_BV(X_XTAL1);_delay_ms(10);PORTD&=~_BV(X_XTAL1);_delay_ms(10); // Set BS1 to “0” and BS2 to “0”. PORTD|=_BV(X_BS1); PORTD&=~_BV(X_BS2); // Give WR a negative pulse. This starts the Chip Erase. RDY/BSY goes low. PORTD&=~_BV(X_WR);_delay_ms(10);PORTD|=_BV(X_WR);_delay_ms(10);