Jump to content

Recommended Posts

Здраствуйте! Подскажите пожалуйста назначение конденсатора С13 в цепи RESET.arduino61-1.png

Про второй вывод FT232RL написано:

2 --- DTR# --- Output --- Data Terminal Ready Control Output / Handshake Signal.

Share this post


Link to post
Share on other sites

есть ли какая-нибудь литература на русском языке по мк 68HC11 ?

Share this post


Link to post
Share on other sites

И.И. Шагурин "Современные микроконтроллеры и микропроцессоры MOTOROLA" справочник

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Новинки и уникальные решения Molex. На что обратить внимание и почему»

15 апреля приглашаем на вебинар, который будет интересен разработчикам и инженерам-схемотехникам, интересующимся тенденциями рынка, новыми перспективными решениями для соединений «провод-провод», «провод-плата», «плата-плата». Для инженеров КИПиА и IT будут освещены уникальные решения Molex для «удлинения» интерфейсов HDMI, DisplayPort и USB даже в условиях сильного зашумления, а также семейство бесконтактных датчиков Contrinex. Помимо этого, будет уделено внимание дальнейшему развитию направления антенн, где Molex имеет ряд интересных и уникальных решений.

Подробнее

изучаю avr, вот такая программка не работает (по нажатию кнопки, подключенной к D5, загорается светодиод на D6)

.include "m16def.inc"
.def temp=r16
.cseg
.org 0
ldi temp,high(RAMEND)
out SPH,temp
ldi temp,low(RAMEND)
out SPL,temp
CBI $31,5
SBI $31,6
ldi temp,0xFF
out PORTD,temp
main: in temp,PIND.6
out PORTD.5,temp
rjmp main

AVR Studio ругается на строчку

in temp,PIND.6

C:\Coding\avr_kurs1\avr_kurs1.asm(15): error: syntax error, unexpected FLOAT

Получается в РОН можно записать значение со всего порта, а с отдельной ноги нет?

В РОН можно пихнуть 8-разрядную константу

а как быть с 1 разрядом?

куда можно считать значение с отдельной ноги порта?

Edited by Lyt

Share this post


Link to post
Share on other sites

Вообще-то нет, нельзя. Но можно сравнить отдельный бит порта и условными переходами установить в нужном РОНе нужный бит. Но у тебя вообще-то на другое ругается, компилятор думает что ты пытаешься в регистр запихнуть ВЕЩЕСТВЕННОЕ число с плавающей запятой(FLOAT), тогда как он может принять только целое!

Можно еще прочитать весь порт и выполнить операцию AND с константой которая оставит только нужный бит, потом проверка на ноль покажет 1 там была или 0.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites
                     

Как снизить потери при включении силового ключа: простая схема управления скоростью нарастания

Снижение потерь на переключения в силовых электронных системах, например, в приводах, зачастую противоречит требованиям ЭМС и ограничивается таким параметром как скорость нарастания напряжения. Простой способ решения, предлагаемый Infineon – параллельное использование двух традиционных драйверов.

Читать статью

Где объявления прерываний? Они не всегда нужны но таблицу лучше сделать сразу

Вместо $31 лучше использовать мнемонику, смотреть какую в данном случае мне лень (DDRD чтоли?)

AVR Studio ругается на строчку
Конечно, такой способ адресации бита мне встречался только в cvavr. Ни в Си ни в Ассемблере его нет, используйте человеческие конструкции.
Получается в РОН можно записать значение со всего порта, а с отдельной ноги нет?
Конечно, ведь контроллер умеет обращаться только с байтами (изредка с 2-байтными словами или 3-4 байтными адресами но это все специфические операторы) соответственно регистр - тоже байт.
В РОН можно пихнуть 8-разрядную константу

а как быть с 1 разрядом?

куда можно считать значение с отдельной ноги порта?

В РОН можно впихнуть любой байт, константу в том числе (Си любит в r1 записывать 0х00 для дальнейших расчетов) но обычно константы объявляют через .equ или, в стиле Си, #define. К отдельному биту можно получить доступ через маски или сдвиги (учим булеву алгебру). В данном случае это будет

...
in temp,PIND
lsr temp
//при желании сюда можно вставить andi temp,(1<<5) чтобы точно не потереть ничего лишнего.
out PORTD,temp
...


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites

В исключительных случаях контроллер может обращаться к портам побитно - инструкции SBI/CBI и условный переход SBIC/SBIS работают с битами ограниченного диапазона портов ввода-вывода(уточнить в даташите).


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

Не совсем, там же оба аргумента (порт/регистр и номер бита) передавать как константы. Побитово хранить их без лишних извращений не выйдет


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites

Есть много книг по программированию МК... как везде есть хорошие книги и как говорится не очень...

Какую литературу для изучения микроконтроллеров порекомендуете?

То что нашел в ближайшем магазине:

1. Разработка устройств на микроконтроллерах AVR (Белов А. В.)

2. Программирование микроконтроллеров для начинающих (Иванов)

3. Микроконтроллеры ARM семейства LPC2000

4. Полное руководство по микроконтроллерам PIC PIC18, PIC10f, rpic

5. Все что Вам необходимо знать PIC микроконтроллеры

6. Программирование микроконтроллеров atmel на языке С

7. Применение микроконтроллеров PIC

8. Программирование на языке С для AVR и PIC (Шпак Ю А.)

Больше ориентирован на программирование на языке С т. к. когда то еще ходил на курсы по С++... хоть что то думаю еще вспомню а код С++ довольно сильно похож на С.

По самим же микроконтроллерам познаний практически ноль - ну несколько раз прошивал пики и авр-ки уже готовой прошивкой с радиолюбительских конструкций... но то уже можно сказать несчитается.

И еще стоит ли тратить время на изучение контроллеров PIC либо AVR (больше склоняюсь к AVR т. к. они более доступны и дешевле) или стоит уже изучать более серьезные и современные микроконтроллеры например те же ARM?

P.S. в принципе если литература хорошая то своим списком я не ограничиваюсь - на литературе не когда не экономил и если есть в Украине то достану что угодно а если не достану так распечатаю и переплету.

Edited by sputnic

Share this post


Link to post
Share on other sites

По AVR однозначно Евстифеева "микроконтроллеры AVR семейства * фирмы Atmel". У Светланы с этого форума пара штук есть, только по семейству mega с ходу не увидел а жаль. Еще может быть Ревич, я с него начинал.

Насчет языка ИМХО С++ для компьютера довольно заметно отличается от Си для контроллеров. Однако начинать с ассемблера, может потом и перейдете на Си или какие-нибудь Паскаль, Бейсик и т.п. но понимания архитектуры никто из них не дает.


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites

в итоге сделал вот так


.include "m16def.inc" 
 .def temp=r16
 .cseg 
 ldi temp,high(RAMEND)
 out SPH,temp
 ldi temp,low(RAMEND)
 out SPL,temp
 CBI $11,5
 SBI $11,6
 ldi temp,0xFF
 out PORTD,temp
  main: sbic $10,5 ;пропуск след. команды если D5=0
        sbi $12,6 ;вывод 1 в D6
        sbis $10,5 ;пропуск след. команды если D5=1
        cbi $12,6 ;вывод 0 в D6
rjmp main

Насчет литературы - на рутрекере есть большая подборка

http://rutracker.org/forum/viewtopic.php?t=1652142

И такой вопрос - насколько актуальны и полезны для изучения 68HC11, которые нам предлагают в универе?

Share this post


Link to post
Share on other sites

насколько... не знаю, но на них досихпор что-то да делают. Знания никогда лишними не будут, тем более что набираешься опыта - потом будет с чем сравнивать.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites
Насчет литературы

Я бы литературой сильно не увлекался, она ОТВЛЕКАЕТ. Какую книжку не возьми, каждый "писатель" намекает что только его книжка самая правильная. А на самом-то деле... книжка нужна только одна, и только для того чтобы быстрее начать. Вполне достаточный источник информации о контроллере - даташит на него. Изучив даташит, ты будешь знать всю необходимую информацию для написания программ под него, удел книжек - это научить читателя на какую кнопку жать в конкретных программах чтобы скомпилировать программу. Иногда, очень редко в книжках встречается более подробная информация что и почему, но пока такую книжку найдешь - она будет уже не нужна: либо отобъют охоту, либо сам все найдешь в даташитах.

Лучше ищи книжки там где больше алгоритмов и примеров работы с конкретной периферией и используй их в качестве справочника - потом они тебе и не понадобятся вовсе, проще будет посмотреть в свои исходники и копипастить оттуда чем заглядывать в книжки.


Учение - изучение правил. Опыт - изучение исключений.

Share this post


Link to post
Share on other sites

а нет литературы, в которой описывается несколько архитектур сразу и проводится их сравнение? А также чисто теоретическое описание архитектур, без привязки к конкретному контроллеру?

Share this post


Link to post
Share on other sites

А архитектуру чего вы хотите рассмотреть таким образом? У AVR, PIC, ARM, x86 она различна: разное количество РОН, шины управления АЛУ, иногда есть прямой доступ к битам ОЗУ (не байтам а именно битам, с байтами другие команды), разная переферия, разные конвеер команд, да мало ли


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites

На каких языках программирования можно писать прошивки для микросхем? авр и пик

Share this post


Link to post
Share on other sites

при переходе в режим Idle (attiny13) на выходах сохраняются значения, заданные до этого?

Edited by Lyt

Share this post


Link to post
Share on other sites

да. Подробнее в даташите


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites

возможно в avr studio отследить, что контроллер перешел в idle режим (пишу на asm)?

Share this post


Link to post
Share on other sites

и такой вопрос еще - в таблице прерываний лучше описывать все прерываний данного мк, или можно только те которые используются?

Share this post


Link to post
Share on other sites

возможно в avr studio отследить, что контроллер перешел в idle режим (пишу на asm)?

Студия 3.21(3.56) ещё не поддерживала SLIP, студия 4 уже поддерживает. Более старшие не знаю, т.к. не пользуюсь.
и такой вопрос еще - в таблице прерываний лучше описывать все прерываний данного мк, или можно только те которые используются?
Второй вопрос сродни холивару "какой МК лучше?" Можно, осознанно, использовать, по своему усмотрению, неиспользуемые адреса области прерываний.

Например

.include "2313def.inc"
.
.

.cseg
.org 0
   RJMP    RESET
   RETI         ; INT_0
   RETI        ; INT_1
   RETI        ; Timer1_capt1
;обработчик прерывания COMP_A
TIMER_COMP1:
   OUT    PORTB,ONE    ; принудительное гашение всех сегментов
   OUT    PORTD,ZH    ; обратной полярносью

   LDI    ZL,LOW(TB_DC*2)
   ADD    ZL,DC
   LPM

   LDI    XL,5        ; загрузить в XH,XL адрес R5
   CLR    XH
   ADD    XL,DC
   LD    R16,X        ; содержимое текущего регистра R5...R8 в R16

   CP    YL,R20
   CPC    YH,R19
   BRCC    POINT
   CPI    DC,$01
   BRNE    POINT
   CBR    R16,$20        ; зажечь децимальную точку единиц часов на 0.5 сек
POINT:    
   OUT    PORTD,R0
   OUT    PORTB,R16    ; вывод на индикацию

   INC    DC
   ANDI    DC,$03        ; подготовиться к индикации следующего знака

COMP1_1:
   SBIW    YL,1
   BRMI    SEC_OUT
   BRNE    COMP1_OUT
COMP1_1_OUT:
   OUT    OCR1AH,R21
   OUT    OCR1AL,R22    ; последнее значение в OCR1A будет на R21 меньше для
               ; учета всех задержек
COMP1_OUT:
   RETI
SEC_OUT:
   SET        ; период 1 секунда окончен
   RETI

Edited by akl

Share this post


Link to post
Share on other sites

и такой вопрос еще - в таблице прерываний лучше описывать все прерываний данного мк, или можно только те которые используются?

Я все описываю, в неактивных ставлю reti в качестве перестраховки.
.include "tn85def.inc"
rjmp RESET
reti; INTO
reti; PCINT
reti; TIMER1 ÑÎÌÐÀ
reti; TIMER1 OVF
rjmp TIMER0OVF
reti; EE_RDY
reti; ANA_COMP
reti; ADC_END
reti; TIMER1 COMPB
reti; TIMEROCOMPA
reti; TIMERO COMPB
reti; WDT
reti; USI START
reti; USI OVF
.def temp=r16
<....>

Пример кода на ATtiny85, используется ШИМ-режим таймера 0.


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites

а чем чревато неописанное прерывание?

Т.е. что произойдет, если возникнет прерывание, которого нет в таблице? Переход на адрес, по которому должен располагаться обработчик?

Share this post


Link to post
Share on other sites

Чтобы использовать неописанные прерывания нужно их программно разрешить. Например, переполнение запущенного таймера 0 не вызовет прерывания до тех пор, пока в TIMSK не установите TOIE0 (из предыдущего сообщения). Ну и что, что там стоит джамп на обработчик, окромя установки флага TOV0 никаких действий контроллер не сделает.

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By MirVsem
      Добрый день.
      Есть интересные модули ибп для слаботочки до 1А.
      m.aliexpress.ru/item/4000109380893.html
       По цене идеально подходит для зоопарка роутеров, IoT устройств... Переключение на резерв (туда-обратно) без просадки. Зарядка литиевой банки как положено, всякие защиты от перегрузки и прочее. Казалось бы все замечательно. 
      НО как всегда не без ложки дёгтя.
       Защита от переразрядки работает неадекватно. Хотя возможно это не сама защита, а повышающий модуль. На пороге ~3в у него срабатывает циклический перезапуск и так пока банка не просядет ниже 3в. Точно померять нечем.
      Из наблюдений. Проверил напряжение переключается с 12в на 9в и щелчки. Естественно нагрузка в это время дико насилуется (роутер свистит минут 5 пока полностю не отключится)
      Вопрос к гуру. Возможно ли что-то доработать в даном модуле чтобы исправить этот досадный баг?
    • By Юлия Михайлова
      Требуються люди умеющие работать с микроконтролерами esp 32 и stm32 , так же будет плюсом опыт работы с raspberry , требования опыт работы не мение 1,5 года , возраст не старше 35 лет , готовы взять на удаленную работу просьба отправлять резюме , и звонить по номеру +380 (68) 227 82 52
    • Guest Роман
      By Guest Роман
      Добрый день, форумчане. Такая задача. Хочу создать несколько устройств на светодиодах. Задача каждого в том, чтобы от движения (датчик вибрации, наклона) светодиод начинал моргать, переливаться и т.д. Подпитывается всё от батарейки, конечно же как можно меньших размеров (таблетка).
      Собственно я уже реализовал такое пробное устройство на ATtiny13, вибродатчике 18015 и батарейке CR1220. Всё работает, но хотелось бы это дело и удешевить и уменьшить в размерах, если это конечно же возможно. Особо в параметрах МК я не разбираюсь, но могу сказать что мне от неё точно нужно:
      1) Маленький размер
      2) Как минимум 1 канал ШИМ (а лучше 3, для переливания трёх светодиодов RGB)
      3) Память на 1Кб (программу для одного такого устройства приложу ниже, может её можно и сократить, но не факт что такую же, но на три диода получится ужать)
      4) Низкое потребление или возможность подключения режимов с низким потреблением.
      5) Работа от 3В. (от таблетки)
      6) Возможность программирования через Arduino UNO (но другие варианты тоже рассматриваю, просто Arduino уже есть)

      Повторюсь пока что нашел и использовал только ATtiny13, который меня вполне устроил, но он достаточно дорогой и в корпусе SOIC его найти достаточно проблематично. К тому же как мне показалось, он слишком хорош для такого проекта. Повторюсь, я чайник, и может есть какие-то более дешевые аналоги.

      Очень надеюсь на Вашу помощь. Заранее большое Вам спасибо!
      Прикладываю обещанный мною код:
      int vib = 4; int led = 0; long loopTime = 5000; void setup() { pinMode(led, OUTPUT); pinMode(vib, INPUT); } void loop() { if (digitalRead(vib)){ unsigned long currentMillis = millis(); while(millis()-currentMillis<=loopTime) { for(int fadeValue = 0; fadeValue <=255; fadeValue+=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 255; fadeValue >=0; fadeValue-=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 0; fadeValue <=255; fadeValue+=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 255; fadeValue >=0; fadeValue-=5){ analogWrite(led,fadeValue); delay(2); } digitalWrite(led, LOW); delay(600); } } }  
    • By Sambler
      У меня была похожая тема,  я решил проблему установив в include util/delay.h
      Но возникла еще одна ошибка, не могу понять, что оно хочет


      p.s. Я обещал, что предыдущая - последняя тема, но я ошибся, не думал, что тут 2 разные программы будут. В этот раз 100 процентов последняя тема и пойду сдавать работы Ы)

       

    • By LemonTV
      Есть картинка из сайта с фьюзами, есть программа avrdude_prog3.3 Как выставить правильно фьюзы чтобы не испортить мк? Незнаю как это сделать есть прямые и инверсные фьюзы, ГДЕ СТАВИТЬ ГАЛОЧКИ И КРУЖОЧЕК НА ПРЯМЫХ ИЛИ ИНВЕРСНЫХ?


×
×
  • Create New...