2. Библиотека AVRLib Обзор и пример использования Петров Александр, 2010
3. AVRLib != AVRLibc AVRLib c - www.nongnu.org /avr-libc/ Стандартная библиотека компилятора avr-gcc ( _ BV(…), _delay_ms, …) AVRLib - http:// www.procyonengineering.com /avr/avrlib/index.html « AVRLib - библиотека функций для решения частых и неочень задач, возникающих при программировании МК AVR » - Pascal Stang, автор библиотеки.
4. AVRLib «Быстро, удобно, дешево – выберите любые два!» 96 библиотечных файлов ( .c, .h) Высокоуровневый подход Open Source , наличие примеров Совместима с avr-gcc (winavr, AVR Studio) Online- документация, по большей части комментированные исходники Дата последнего обновления – май 2006
6. Примеры И тут я открываю AVR Studio и показываю эффектные примеры
7. Опыт использования (мобильный робот) ATMega8 (8Mhz) ATMega32 (16Mhz) UART PC PWM Pulse Engines Stepper Current sensor ADC SPI “ UART” Temp. Hall sensor Ext. Vitaliy and Vsevolod handcoding AVRLib Logic output
8. Не про AVRLib , но важно Фьюз CKOPT ! Проблема – нестабильная работа UART (связь с ПК) при интенсивной работе Проявляется – в различных условиях (загруженный AVR ; пустой AVR ; клиент на ПК на BCB, C#, Java ; используется AVRlib или нет ; Юпитер в зените ; …) Ведет – бессонные ночи, потраченные выходные, 10 форумных сообщений
9. Нужно знать в лицо ПК – просто ждем Эхо: while(true) { SerialPort.Send(random_number); SerialPort.ReceiveByte(); } МК – просто отсылаем Эхо: while(true) { UART_Send(UART_Receive()); }
10. Решение Datasheet ATMega32 (page 24): The CKOPT Fuse selects between two different Oscillator amplifier modes. When CKOPT is programmed, the Oscillator output will oscillate will a full rail-to-rail swing on the output. This mode is suitable when operating in a very noisy environment or when the output from XTAL2 drives a second clock buffer. This mode has a wide frequency range. When CKOPT is unprogrammed, the Oscillator has a smaller output swing. This reduces power consumption considerably. This mode has a limited frequency range and it can not be used to drive other clock buffers. For resonators, the maximum frequency is 8 MHz with CKOPT unprogrammed and 16 MHz with CKOPT programmed. ИТОГО: Если кварц <= 8 Mhz , то в uniprof CKOPT c галочкой, иначе в uniprof CKOPT без галочки