Jump to content

    

the_victor

Участник
  • Content Count

    8
  • Joined

  • Last visited

Community Reputation

0 Обычный

Контакты

  • Сайт
    Array

Информация

  • Город
    Array
  1. мега 128. таймер 0. похоже напутал с инициализацией таймера. надо делать TCCR0=(1<<CS02)|(1<<CS01)|(1<<CS00); вот растяпа. он похоже по многу раз переполнялся и попадал на нужные значения, что убедило меня в правильности программы.
  2. вобщем есть такие фрагменты кода из проекта, которые еще работает только частично. #define F_CPU 8000000 //тактовая частота #define TIC0 ((unsigned char)(F_CPU/(1024*255))) //столько раз в секунду переполняется таймер 0 #define SCROLL_TIME ((unsigned char)(0,5*TIC0)) SIGNAL(TIMER0_OVF_vect) { tics.led_scroll++; } main() { //тактовая для таймера0 = F_CPU/1024 //разрешаем прерывание по переполнению таймера0 TCCR0=(1<<CS02) | (1<<CS00); TIMSK|=(1<<TOIE0); if ( tics.led_scroll == SCROLL_TIME ) { tics.led_scroll = 0; и тд прокрутка бегущей строки. } } в общнм проблема: по логике вещей таймер переполняется 8000000(такт частота) / ( 1024(делитель)*256(разрядность счетной переменной) ). если ето сделать через дефайн, то работает, прокручивается на глаз где-то за пол секунды. если посчитать на калькуляторе то получим значение 30. но компилятор вычисяляет значение 124(выводил на индикатор). при том если поставить в условие 30, то прокрутка становится очень быстрой. то есть таймер срабатывает в несколько раз чаще чем должен и при этом дефайн вычисляется во столько же раз больше. ето не поддается моему пониманию. я думаю что как то неверно преобразуются типы. но все равно ничего не понимаю. если в формуле дефайна делить на 255 то работает, а если на 256 (что точнее), то программа даже не заходит в прокрутку, бегущая строка замирает. все типы uint8_t. warning: integer overflow in expression в условии сравнения. WinAVR-20070525 в архиве все что я накодил. бегущая строка работают, кнопки не не так как должны(срабатывает длинное нажатие, но это все из за этих глючных дефайнов). в принципе можно смириться, но охото понять почему так, и для длительной задерки 5сек для кнопки не охото вводить 16бит пременную.
  3. ссылка в тему http://www.citforum.ru/security/articles/printf/ Неизвестная уязвимость функции printf Крис Касперски
  4. подключенно правильно? 1 -> +5 2 -> GND 3 -> движок резистора 10 -20ком
  5. путь указан не верно прописать полный путь #include <d:\dev\avr\AVRLib\uart.h> или #include <..\AVRLib\uart.h> хз, может косяк с makefile. попробовать создать при помощи входящей в комплект winavr утилиты MFile [WinAVR]
  6. попробовал скомпилить пример для LCD http://atmel.ru/Articles/Atmel17_app3.htm статья http://atmel.ru/Articles/Atmel17.htm .org $200 rus_buf: .DB $11,$11,$11,$11,$0F,$01,$01,$00 .DB $12,$12,$12,$12,$12,$12,$1f,$01 .DB $1f,$11,$11,$11,$11,$11,$11,$00 text: .DB ' ',' ',' ',' ','O','T','C',0,'E','T' .DB ' ','c',' ','A',1,2,':',' ',' ',' ' на строчке text: D:\MK_rab\AVRstd\AvrStudio4\lcd.asm(160): error: syntax error, unexpected INTEGER не понимаю, что ей не нравится?
  7. применение узи в данной области лично у меня вызывает сомнения. например в больнице перед узи обследыванием намазывают спец гель. по аналогии надо будет намазывать что то на землю для поисков монет. а ето бред. а если без контакта с землей, то устройство будет типа локатора, как у летучих мышей, что под землей оно не покажет. imho.
  8. к сожалению все ссылки в оглавлении на той странице имеют вид http://my.elvisti.com/zhenja/getting_started_avr.html# и соответственно нельзя ниче посмотреть. это только у меня так или у всех?