Jump to content

    

Valek

Участник
  • Content Count

    24
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Valek

  • Rank
    Участник

Информация

  • Город
    Челябинск

Recent Profile Visitors

454 profile views
  1. IAR 8.10

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

    Здравствуйте, подскажите пожалуйста комбинацию клавиш переключение автозамены текста, при написании кода в среде IAR. В нижнем правом углу пиктограмка ЗАМ, между NUM и флажком. Была блекла, а теперь яркая. Ребенок прошелся по клавиатуре, теперь не могу вернуть. Зарание спасибо.
  3. Вопросы начинающих 2015г

    Здравствуйте. Установил 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. Цитата(Herz @ May 2 2013, 11:39) Valek, а чему Вы удивляетесь? Пока Вы будете делать по две ошибки в слове, программы Ваши и работать будут соответственно. Вы же и на ассемблере пишете с той же внимательностью. прям как диктант пишем, будем повнимательней. А на ассемблере где ошибся?
  7. Цитата(MaxiMuz @ Apr 27 2013, 18:32) замените PCINT0 на любое др. имя к примеру PCINT0_vect , т.к. имя PCINT0 описывается в tn13Adef.inc который вы включили в свой проект Как микроконтроллер поймет что нужно перейти в это место при совершении прерывания? А я думал что метка в программе должна называться как прерывание, и когда совершается прерывание то программа переходит в это место.
  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. Цитата(XVR @ Apr 25 2013, 10:25) За что же вы свою инициализацию стека в область векторов прерывания засунули? Вообще я ставил инициализацию стека в разные места, не помогает (
  10. Цитата(ILYAUL @ Apr 22 2013, 21:34) Покажите ка Вашу инит стека Код.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. Цитата(artkam @ Apr 19 2013, 21:34) Очень уж странная у Вас схема... Здесь получается, что при срабатывании мосфета, питание, подаваемое на контроллер, просаживается до ноля. Точно! ))) Так и есть. Но если вы повнемательней посмотрите на программу, то увидете, что это генератор с частоттой 125 Гц и скважностью 7/8. Так вот, когда открыт транзистор микроконтроллер питается от конденсатора С1, потом транзистор закрывается и С1 заряжается через R3, R4. Цитата(adnega @ Apr 19 2013, 21:42) А инициализация стека? Код            ldi        temp, LOW(RAMEND)             out        SPL, temp Добавить в самом начале. А самое начало это после Код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. Полигон будет создан (на рисунке он белого цвета). Теперь достаточно выделить его и указать, как обычно, остальные параметры полигона.