Перейти к содержанию
    

Игорек

Участник
  • Постов

    39
  • Зарегистрирован

  • Посещение

Весь контент Игорек


  1. Забыл упомянуть, что достаточно одноосевого датчика. Спасибо всем ответившим, теперь понятно в каком направлении копать.
  2. Здравствуйте, посоветуйте пожалуйста датчик угла поворота относительно горизонта. Выход аналоговый, пропорциональный углу наклона датчика относительно горизонта. Диапазон измерения - плюс (минус) 15 градусов. Точность 0.1 градуса. Устойчивость к вибрации, грязи, воздействию воды (дождь). Предлагайте любые варианты, кроме потенциометрических.
  3. Здравствуйте! ОC Windows 7 Максимальная-32, программатор STK-200 (5 проводков с буфером на 74HC244) Установил 1. Eclipse IDE for C/C++ Developers Version: Juno Service Release 1 Build id: 20120920-0800 2. Плагин avreclipse.2.4.0.final.p2repository 3. AVR toolchain 3.4.1.1195 4. В Eclipse->Windows->Preferences выставил пути к GCC, AVRDUDE и т.п. Создал С-проект. В Project explorer по щелчку правой кнопки выбираю Properties, дальше выбираю страницу AVR->AVRDude и выскакивает ошибка "The currently displayed page contains invalid values". 1. Мне не понятно, что за неверные значения содержатся на странице AVRDude? Дальше я захожу в AVR-Target Hardware, хочу выбрать MCU type но выпадающий список пустой. Нажимаю Load from MCU - ноль реакции... 2. Почему нельзя выбрать тип контроллера?
  4. Пару раз видел на иностранных схемах некий элемент, обозначенный как две пересекающихся окружности? Что это? Предполагаю, что это один из вариантов обозначения источника постоянного тока, но не уверен.
  5. Makefile я делал сам, из первоисточника я брал только определение функции w1_find() и директивы #define. А вобще как-то влияет ли на функции delay частота, с которой работает микроконтроллер? Скажем, если я выставлю фьюзы и Makefile на 1 МГц и вызову функцию _delay_us(10), а потом выставлю фьюзы и Makefile на 8 МГц и вызову функцию _delay_us(10) , временные задержки будут абсолютно идентичны или будут все-таки различаться?
  6. Изначально в Makefile стояла частота 1Мгц, фьюзы изначально также были на 1 МГц. Где это посмотреть?
  7. Блин, прошил фьюзы на 8 МГц, поставил в Makefile F_CPU = 8000000 и все заработало. Чертовщина какая-то...На 1 Мгц никак, на 8 работает. Почему?
  8. За основу взял эту статью: http://samou4ka.net/page/interfejs-1-wire-...hik-ds18b20#cut К моему микроконтроллеру подключен 7-сегментный 3-х разрядный индикатор(d0-d7 - сегменты, b0-b2 - разряды), а также датчик температуры DS18B20 к порту c0. Хочу, чтобы если на с0 есть датчик - 7-сегментный индикатор выводил 1, нет датчика - 7 сегментный индикатор выводил 0. Ниже код в WinAVR. Почему подключенном датчике 7-сегментный индикатор выводит 0, хотя должен 1? Фьюзы стоят на 1 МГц. #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU = 1000000UL #define W1_PORT PORTC #define W1_DDR DDRC #define W1_PIN PINC #define W1_BIT 0 //функция определяет есть ли устройство на шине unsigned int w1_find() { unsigned char device; W1_DDR |= 1<<W1_BIT;//логический "0" _delay_us(485);//ждем минимум 480мкс W1_DDR &= ~(1<<W1_BIT);//отпускаем шину _delay_us(65);//ждем минимум 60мкс и смотрим что на шине if((W1_PIN & (1<<W1_BIT)) ==0x00) device = 1; else device = 0; _delay_us(420);//ждем оставшееся время до 480мкс return device; } // 0 1 2 3 4 5 6 7 8 9 const unsigned char codes[10]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char data[3]={0x00,0x00,0x00}; int main(void) { unsigned int x=0; while(1) { //Conver data to codes DDRD = 0xff; DDRB = 0xff; PORTB = 0xff; x = w1_find(); PORTD = codes[x]; _delay_ms(1000); } return 1; } 1. В чем может быть дело, подскажите куда копать. На скриншоте - осциллограмма на ножке c0. 2. Помогите разобраться с операторами функции w1_find(): W1_DDR |= 1<<W1_BIT - как я понял логическое ИЛИ между содержимым регистра W1_DDR и числом 00000001. Но чему равно содержимое регистра W1_DDR, оно же ранее нигде не задано?
  9. Только начал изучать AVR, решил собрать на ATmega8 схему включения-выключения светодиода одной кнопкой(Нажимаем на кнопку, она коротит одну из ножек контроллера на землю, светодиод припаянный к другой ножке тухнет, нажимаем еще раз - светодиод загорается). На ножке PB0 - светодиод, на ножке PB1 - кнопка. .include "m8def.inc" .org 0 RJMP Reset Reset: LDI R16,Low(RAMEND) OUT SPL,R16 LDI R16,High(RAMEND) OUT SPH,R16 LDI R16,1<<DDB0 OUT DDRB,R16 LDI R16,1<<PORTB1 OUT PORTB, R16 Start: IN R16,PINB SBRS R16,1 RCALL Change RJMP Start Change: LDI R17,0x3 EOR R16,R17 OUT PORTB,R16 RET 1. Подскажите, если не сложно, какие явные косяки в коде имеются (чувствую, что они там точно есть :rolleyes: ). 2. Не всегда срабатывает переключение светодиода, иногда происходит так: светодиод светится, я нажимаю кнопку где-то на секунду, светодиод в это время светится вполнакала, отпускаю кнопку и светодиод снова светится, хотя должен был погаснуть. Или светодиод не светится, я нажимаю кнопку, светодиод начинает светится вполнакала, отпускаю кнопку и светодиод снова не светится. А иногда все работает нормально (примерно 50 на 50). Из-за чего это может быть?
  10. Собирал на макетке, забыл припаять эти конденсаторы на землю. Проблема решена, спасибо!
  11. Да, с землей все отлично. Пробовал на двух разных компах - результат одинаков. Дело не в COM порте. Склоняюсь к неисправности макса. Питание контроллера и МАКСА от USB того же компа, к которому подключаюсь. Помех по питанию не видно. Выход макса без подключения к компьютеру также сопровождается импульсами.
  12. Но компьютер принимает сигнал, посылаемый контроллером нормально (проверял программой Terminal 1.9b). Только вот эти импульсы смущают. Попробую на днях другой MAX. Длина провода - полметра, скрутка из трех проводов.
  13. Начал изучать atmega8, написал простейшую программку, бесконечно отправляющую через UART->MAX232->COM порт компьютера знак вопроса(63 в ASCII или 00111111 в двоичном коде). Сначала я подцепился осциллом к ножке Tx микроконтроллера. Тут мне все понятно: первым идет стартовый нулевой бит, затем 6 единичек, задем два нулика, затем стоповый бит. Затем я подцепился к ножке Rx Com порта моего компьютера. Там тоже все понятно: единички отрицательные, нули положительные. Непонятно вот что: каким образом MAX232 делает из 5 вольт отрицательное напряжение (предполагаю что за счет переключения конденсаторов, подключенных к ее ножкам), также непонятно, что за прямоугольные импульсы с периодом примерно 20 микросекунд сопровождают сигнал на COM-порте.
  14. http://habrahabr.ru/blogs/linux/139070/ как вариант:)
  15. http://amasci.com/elect/elefaq.html Нашел отличный сайт, где до малейших тонкостей объясняются принципы возникновения, протекания электрического тока, как куда и почему движутся заряды и все в том роде.... Может кому будет интересно (Все же больше он рассчитан на новичков). Жаль, что все на английском. Сейчас сижу читаю со словарем. Вот цитата оттуда о связи скорости электронов и силы тока в проводниках разного сечения:
  16. Спасибо за помощь, будем читать Фейнмана.
  17. Ну в школе я на тройки учился ( о чем сейчас жалею), так что белые пятна есть то тут то там. Учебников у меня никаких, к сожалению, со школы не осталось.
  18. 1. В опытах по электростатике натирают стеклянную палочку кусочком кожи (при этом как я понял часть электронов с внешнего слоя стеклянной палочки "сдирается"кожей, палочка приобретает положительный заряд, кожа отрицательный). Дальше касаются этой палочкой электроскопа, часть электронов с электроскопа перетекает на стеклянную палочку, электроскоп заряжается положительно. Вопрос: каким образом происходит перетекание заряда с электроскопа на стеклянную палочку. Стекло же диэлектрик, заряды через него не должны проходить. 2. Что такое потенциал электростатического поля, и как он связан с напряженностью. (что такое напряженность электростатического поля я понимаю). Как я понял, потенциал - это примерно то же, что и напряженность. Возьмем точку А близко от заряда и Б далеко от заряда. Напряженность в точке А будет большой, потенциал тоже большим, напряженность в точке Б будет маленькой, потенциал тоже маленьким. В статьях в интернете и в учебниках пишут что потенциал связан с работой и т. п. но я пока не совсем понял, что же именно это такое.
  19. Спасибо, мельком пролистал - довольно интересно. Щас поизучаем!!!
  20. Что в левой что в правой части Вашего выражения есть i, мне непонятно куда его девать потом. В начале у нас зависимость амплитуды от времени, после преобразования у нас зависимость амплитуды от частоты. Ни до преобразования ни после преобразования у нас нет i , так куда же эта i девается??? PS: я знаю как складывать, находить разность, умножать, делить комплексные числа, знаю алгебраическое, тригонометрическое, показательное представление комплексных числел и как перейти от одного представления к другому. Но когда доходит дело до преобразований Фурье или Лапласа, тут я пас...
×
×
  • Создать...