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

Valek

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

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

  • Посещение

Репутация

0 Обычный

Информация о Valek

  • Звание
    Участник
    Участник

Информация

  • Город
    Array

Посетители профиля

742 просмотра профиля
  1. IAR 8.10

    Большое спасибо! Это был "Insert" )
  2. IAR 8.10

    Здравствуйте, подскажите пожалуйста комбинацию клавиш переключение автозамены текста, при написании кода в среде IAR. В нижнем правом углу пиктограмка ЗАМ, между NUM и флажком. Была блекла, а теперь яркая. Ребенок прошелся по клавиатуре, теперь не могу вернуть. Зарание спасибо.
  3. Здравствуйте. Установил Altium 16.1.11 и столкнулся с очень не привычным действием. Сейчас в редакторе схем что бы повернуть УГО его необходимо выделить одним кликом ЛК мыши. В предыдущий версии не было необходимости выделять компонент для поворота, поворачивали не отпуская ЛК мыши. Подскажите пожалуйста есть ли возможность настроить что бы поворачивать не отпуская ЛК мыши? Или у меня прога криво встала?
  4. Здравствуйте. Посоветуйте сбоку из двух транзисторов P и N каналов. Корпус для поверхностного монтажа. Напряжение от 20 В и ток от 15 А. Спасибо.
  5. Ну вот, совсем по-простому. Эта программа работает как часы. Но я хочу установить спящий режим. Какие регистры мне необходимо настроить? MCUCR и GIMSK? Без прерываний не обойтись? ; Программа для фонаря с магнитным управлением ; частота 1 МГц от внутреннего генератора .device ATtiny13A .nolist .include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn13Adef.inc" .list .def temp = r16 .def delay1= r17 .def delay2= r18 .def delay3= r19 rjmp Init Init: ;Назначаем входы и выходы портов (0-вход, 1-выход) ldi temp,0b111101 out DDRB ,temp ;Включаем подтяжку на входах (1-есть рез., 0- нет рез.) ;и задаем начальное состояние выходов ldi temp,0b000010 out PORTB ,temp Start: rcall knopka on: sbi portB, 4;включаем светодиод ;задержка 7 милисекунд ldi Delay1, 0x78 ldi Delay2, 0x05 ldi Delay3, 0x00 rcall Delay cbi PortB, 4 ;тушим светодиод ;задержка 1 милисекунда ldi Delay1, 0xC8 ldi Delay2, 0x00 ldi Delay3, 0x00 rcall Delay sbis PinB, 1 ;проверяем нажатие кнопки rjmp knopka rjmp on //Подпрограмма "кнопка" knopka: sbic PinB, 1;ждем нажатия кнопки rjmp knopka ;задержка от дребезга контактов 5mc ldi Delay1, 0x78 ldi Delay2, 0x05 ldi Delay3, 0x00 rcall Delay puch: sbis PinB, 1;ждем отпускания кнопки rjmp puch ret Delay: subi Delay1,1 sbci Delay2,0 sbci Delay3,0 brcc Delay ret
  6. прям как диктант пишем, будем повнимательней. А на ассемблере где ошибся?
  7. Как микроконтроллер поймет что нужно перейти в это место при совершении прерывания? А я думал что метка в программе должна называться как прерывание, и когда совершается прерывание то программа переходит в это место.
  8. AVR Studio 4.18 build 716 при компиляции выдает ошибку. Я помню что всамом начале тоже пытался задействовать это прерывание и у меня была такая же ошибка. .device ATtiny13A .nolist .include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn13Adef.inc" .list .def temp = r16 .def Delay1 = r17 .def Delay2 = r18 .def Delay3 = r19 rjmp RESET; Reset Handler rjmp EXT_INT0; IRQ0 Handler rjmp PCINT0; PCINT0 Handler reti;rjmp TIM0_OVF; Timer0 Overflow Handler reti;rjmp EE_RDY; EEPROM Ready Handler reti;rjmp ANA_COMP; Analog Comparator Handler reti;rjmp TIM0_COMPA; Timer0 CompareA Handler reti;rjmp TIM0_COMPB; Timer0 CompareB Handler reti;rjmp WATCHDOG; Watchdog Interrupt Handler reti;rjmp ADC; ADC Conversion Handler вот такая ощибка: D:\AVR Project\fonar\fonar.asm(131): error: Illegal attempt to re-use 'PCINT0' as label Пишет что PCINT0 где-то уже ипользовалось! Что за чушь, мы же его впервые в программе написали. Да... а разве нет резници между EXT_INT0 и INT0?
  9. Вообще я ставил инициализацию стека в разные места, не помогает (
  10. .device ATtiny13A .nolist .include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn13Adef.inc" .list ;èíèöèàëåçàöèÿ ñòåêà ldi temp, LOW(RAMEND) out SPL, temp .def temp = r16 .def Delay1 = r17 .def Delay2 = r18 .def Delay3 = r19 rjmp RESET; Reset Handler rjmp EXT_INT0; IRQ0 Handler reti;rjmp PCINT0; PCINT0 Handler reti;rjmp TIM0_OVF; Timer0 Overflow Handler reti;rjmp EE_RDY; EEPROM Ready Handler reti;rjmp ANA_COMP; Analog Comparator Handler reti;rjmp TIM0_COMPA; Timer0 CompareA Handler reti;rjmp TIM0_COMPB; Timer0 CompareB Handler reti;rjmp WATCHDOG; Watchdog Interrupt Handler reti;rjmp ADC; ADC Conversion Handler ;******************************************************************************* ** Reset: ;èíèöèàëåçàöèÿ ñòåêà ldi temp, LOW(RAMEND) out SPL, temp ;Íàçíà÷àåì âõîäû è âûõîäû ïîðòîâ (0-âõîä, 1-âûõîä) ldi temp, 0b111101 out DDRB, temp ;Âêëþ÷àåì ïîäòÿæêó è çàäàåì íà÷àëüíîå ñîñòîÿíèå âûõîäîâ ldi temp, 0b000010 out PORTB ,temp ;Íàñòðàèâàåì ðåãèñòð MCUCR íà ðàçðåøåíèå ïðåðûâàíèé ñ 0 íà 1 ;è óñòàíàâëèâàåì ðåæèì Power-down ldi temp, 0b00110011 out MCUCR, temp ;ðàçðåøàåì âíåøíèå ïðåðûâàíèÿ íà INT0 ldi temp, 0b01000000 out GIMSK, temp sei ;ðàçðåøèòü ïðåðûâàíèÿ EXT_INT0: sei ldi temp, 0b00110011 out MCUCR, temp sbis PinB, 1;æäåì íàæàòèÿ êíîïêè (0-âûïîëíÿåì, 1-ïðîïóñêàåì) sleep puch:;æäåì îòïóñêàíèÿ êíîïêè sbic PinB, 1 rjmp puch ;Íàñòðàèâàåì ðàçðåøåíèå ïðåðûâàíèé ñ 1 íà 0 ldi temp, 0b00110010 out MCUCR, temp Loop: sbi PortB, 4 ;âêëþ÷àåì ñâåòîäèîä ;çàäåðæêà 7 ìèëèñåêóíä ldi Delay1, 0x78 ldi Delay2, 0x05 ldi Delay3, 0x00 rcall Delay cbi PortB, 4 ;òóøèì ñâåòîäèîä ;çàäåðæêà 1 ìèëèñåêóíäà ldi Delay1, 0xC8 ldi Delay2, 0x00 ldi Delay3, 0x00 rcall Delay ;åñëè êíîïêà íå íàæàòà ïðîäîëæàåì ãîðåòü sbis PinB, 1 rjmp Loop puch1:;æäåì îòïóñêàíèÿ êíîïêè sbic PinB, 1 rjmp puch1 rjmp EXT_INT0 Delay: subi Delay1,1 sbci Delay2,0 sbci Delay3,0 brcc Delay ret При первом и втором варианте программы, если закоментировать строку sleep, то программа работает так - подносишь магнит загорается светодиод (как задумано, со скважностью 7/8) убераешь магнит тухнет светодиод.
  11. Инициализация стека не спасло ситуацию (((. Мне вот интересно, есть статья http://radiokot.ru/start/mcu_fpga/avr/ там используются такие же команды как у меня в программе, но там ни слова про инициализацию стека. Где у меня ошибка? Почему в симуляторе все работает как надо, а в микроконтроллере нет? Может можно как-то поблочно программу проверить. Скажем чтобы был просто генератор. Отключить прерывания и оставить только задежки?
  12. Это получается в двух местах инициализацию делать?
  13. Точно! ))) Так и есть. Но если вы повнемательней посмотрите на программу, то увидете, что это генератор с частоттой 125 Гц и скважностью 7/8. Так вот, когда открыт транзистор микроконтроллер питается от конденсатора С1, потом транзистор закрывается и С1 заряжается через R3, R4. А самое начало это после Reset: или после .cseg .org 0 ?
  14. Здравстуйте! Продскажите пожалуйста где у меня ошибка. Я написал программу для ATtiny13A. В симуляторе AVR Studio все работает как надо, а как прошиваю ничего не горит. Пробывал прошить скачаную программу из инета, все заработала. Это моя первая программа, опыта работы с AVR Studio нет. Программатор AVR Dragon, прошивку программатора обновил вчера через AVR Studio. .device ATtiny13A .nolist .include "C:\Program Files\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn13Adef.inc" .list .def temp = r16 .def Delay1 = r17 .def Delay2 = r18 .def Delay3 = r19 .cseg .org 0 rjmp RESET; Reset Handler rjmp EXT_INT0; IRQ0 Handler reti;rjmp PCINT0; PCINT0 Handler reti;rjmp TIM0_OVF; Timer0 Overflow Handler reti;rjmp EE_RDY; EEPROM Ready Handler reti;rjmp ANA_COMP; Analog Comparator Handler reti;rjmp TIM0_COMPA; Timer0 CompareA Handler reti;rjmp TIM0_COMPB; Timer0 CompareB Handler reti;rjmp WATCHDOG; Watchdog Interrupt Handler reti;rjmp ADC; ADC Conversion Handler ;******************************************************************************* ******* Reset: ;задержка запуска после сброса ldi Temp,0 ldi Temp,0 ;Назначаем входы и выходы портов (0-вход, 1-выход) ldi temp, 0b111101 out DDRB, temp ;Включаем подтяжку и задаем начальное состояние выходов ldi temp, 0b000010 out PORTB ,temp ;Настраиваем регистр MCUCR на разрешение прерываний с 0 на 1 ;и устанавливаем режим Power-down ldi temp, 0b00110011 out MCUCR, temp ;разрешаем внешние прерывания на INT0 ldi temp, 0b01000000 out GIMSK, temp sei ;разрешить прерывания EXT_INT0: sei ldi temp, 0b00110011 out MCUCR, temp sbis PinB, 1;ждем нажатия кнопки (0-выполняем, 1-пропускаем) sleep puch:;ждем отпускания кнопки sbic PinB, 1 rjmp puch ;Настраиваем разрешение прерываний с 1 на 0 ldi temp, 0b00110010 out MCUCR, temp Loop: sbi PortB, 4 ;включаем светодиод ;задержка 7 милисекунд ldi Delay1, 0x78 ldi Delay2, 0x05 ldi Delay3, 0x00 rcall Delay cbi PortB, 4 ;тушим светодиод ;задержка 1 милисекунда ldi Delay1, 0xC8 ldi Delay2, 0x00 ldi Delay3, 0x00 rcall Delay ;если кнопка не нажата продолжаем гореть sbis PinB, 1 rjmp Loop puch1:;ждем отпускания кнопки sbic PinB, 1 rjmp puch1 rjmp EXT_INT0 Delay: subi Delay1,1 sbci Delay2,0 sbci Delay3,0 brcc Delay ret Вот схема всего устройства. Это фонарь с магнитным управлением, кнопку нажал светодиод загорелся, еще раз нажал потух и микроконтроллер ушол в спящий режим. Я на первом этапе поставил только геркон, 2 резистора и светодиод, вместо транзистора.
  15. Создание полигона из выделенных объектов 1. Итак, операцией Place/Line или Place/Arc создадим замкнутый контур (желтый контур на рисунке из двух полуокружностей, соединенных ломаной линией). 2. Применим операцию Tools/Polygon Pours/Define from selected objects. 3. Полигон будет создан (на рисунке он белого цвета). Теперь достаточно выделить его и указать, как обычно, остальные параметры полигона.
×
×
  • Создать...