ݺߣ

ݺߣShare a Scribd company logo
Библиотека  AVRLib Обзор и пример использования Петров Александр, 2010
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, автор библиотеки.
AVRLib   «Быстро, удобно, дешево – выберите любые два!» 96 библиотечных файлов ( .c, .h) Высокоуровневый подход Open Source , наличие примеров Совместима с  avr-gcc (winavr, AVR Studio) Online- документация, по большей части комментированные исходники Дата последнего обновления – май 2006
Модули  AVRLib General : buffers ,  printf ,  FAT16/32 , … AVR Built-In Peripheral Drivers : timers ,  pwm ,  spi , … External Hardware Device Drivers : LCD ,  EEPROM ,  Servos ,  IDE/ATA ,  GPS … AVR Software-Emulated Devices : UART ,  I2c Master ,  Intel-type Memory Bus … Network Support :  uC drivers ,  IPDP ,  DHCP …
Примеры И тут я открываю  AVR Studio   и показываю эффектные примеры
Опыт использования  (мобильный робот) 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
Не про  AVRLib , но важно Фьюз  CKOPT ! Проблема  – нестабильная работа  UART  (связь с ПК) при интенсивной работе Проявляется  – в различных условиях (загруженный  AVR ; пустой  AVR ; клиент на ПК на  BCB, C#, Java ;  используется  AVRlib  или нет ;  Юпитер в зените ; …) Ведет  – бессонные ночи, потраченные выходные, 10 форумных сообщений
Нужно знать в лицо ПК  –  просто ждем Эхо: while(true)   { SerialPort.Send(random_number); SerialPort.ReceiveByte(); } МК – просто отсылаем Эхо: while(true) { UART_Send(UART_Receive()); }
Решение 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  без   галочки

More Related Content

презентация Microsoft power point

  • 1.
  • 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
  • 5. Модули AVRLib General : buffers , printf , FAT16/32 , … AVR Built-In Peripheral Drivers : timers , pwm , spi , … External Hardware Device Drivers : LCD , EEPROM , Servos , IDE/ATA , GPS … AVR Software-Emulated Devices : UART , I2c Master , Intel-type Memory Bus … Network Support : uC drivers , IPDP , DHCP …
  • 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 без галочки