Onixx

Помогите Студенту-Чайнику По Мк

698 сообщений в этой теме

Alex    484
чтобы бесконечно все это скакало.
Да оно, как бы, и так не останавливается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
Igor-13    1

Как это, не останавливается. Одна частота постоянно стоит, а хочется чтобы туда-сюда гуляла с определенной скоростью, типа сканера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Viktor26    300

в цикле for меяйте калибр. число с определенным промежутком по времени и будет на выходе менятся частота

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Igor-13    1

Спасибо за советы. я программировать не умею, но попробую..., с вашей помощью. Очень хочется получить задуманное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    484

А что для Вас "задуманное" ?

Вы хотели получить частоту на выходе - получили.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Igor-13    1

Не получается. некуда всунуть этот цикл. Я думаю надо перед nop вставить счетчик от 1 до 1 миллиона после чего менять калибр. число, тогда каждую секунду будет меняться частота. А как счетчик сделать не знаю.

"задуманное"
сканер для ачх

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Viktor26    300

Этот код нужно всунуть в бесконечный цикл, в "меин ". И перед ним задержку на сколько вам нужно. А после проверяете, если калибр. число равно своему максимуму, то присвоить ему его минимум. И получится бесконечно по кругу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Igor-13    1

Да, легко сказать, да трудно сделать когда я в этом слабак. Могу только копировать куски из других исходников и вставлять в свой проект. Буду пробовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Igor-13    1

Тупо вставляю цикл

L__main

L = 1

addlw 1

movwf OSCCAL

start

nop

L = L + 1

if L = 1000000 then goto L__main else goto start

END

Выдает BUILD FAILED

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    484

if-else в АСМе ?

Шутники, млин... :)

Вот это :

start
addlw 1
movwf OSCCAL
goto start
END

уже цикл. С каждой интерацией OSCCAL увеличивается на единицу.

Зачем ещё что-то придумывать ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 051

Алекс, так делать низя :)

start
addlw 2 ; надо так!
movwf OSCCAL
nop
nop
goto start
END

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Viktor26    300

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

ему про векторы никто не рассказывал, про вызовы тоже, а читать лень

Изменено пользователем Viktor26

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    484
Алекс, так делать низя :)
Ну может быть :)
все равно задержка еще нужна
https://yandex.ru/se...=PIC Delay&lr=5
и дойти до этого куска программы тоже нужно
:

Хочется вытащить 4 МГц из PIC10F200, а как не знаю.

и не узнаешь... и не вытащишь , на выходе можно получить максимум 1Мгц

скармливаешь МПЛАБу код:

;**********************************************************************
list	 p=10F200		 ; list directive to define processor
#include <p10F200.inc>	 ; processor specific variable definitions

__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF

;**********************************************************************
ORG	 0xFF			 ; processor reset vector

; Internal RC calibration value is placed at location 0xFF by Microchip
; as a movlw k, where the k is a literal value.

ORG	 0x000			 ; coding begins here
iorlw 1
movwf OSCCAL		 ; update register with factory cal value

start
nop					
goto start

END					

получаешь хекс, заливаешь в МК и получаешь на 4выводе 1МГц

Человеку всё уже приподнесли.

А векторы тут совсем не при чём. Там используется только единственный - вектор сброса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Viktor26    300

Я понимаю, с этого вектора программа уходит на метку старт. И потом там в коде есть гото старт. А ещё же нужно инициализировать периферию и настроить чтоб на том выводе мегагерцы были. Или в пиках координально все не так как в авр?

А про задержку это я писал для вопрошаемого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Igor-13    1

думал быстро получится. пришлось книжку читать. пока не понял как сделать цикл.

Заменил nop на goto $+1 частота увеличилась на 3кгц.

start

goto $+1

goto start

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
zhur.tgn    1

народ помогите сделать 4 програмных шим канала управляюшиеся внешними кнопками

ATMEGA16a в Atmel Studio

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    484

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
COKPOWEHEU    248

С PIC'ами дела не имел, но посмотрите где объявлен PC1. Скорее всего это константа, равная 1. А выражение 1=0 и должно выдавать ошибку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Похожие публикации

    • Автор: karomag
      Добрый день.
      Экспериментирую с подключение 7-сегментного индикатора к мк stm32. Индикатор с общим катодом. Соответственно для вывода цифры необходимо на анод каждого сегмента подать 1, а на общий катод 0. И тут я не могу понять какие токи будут через порты. Теоретически, пины МК подключенные через резистор 300 Ом к аноду (напряжение МК 3.3 В) то ток будет 4 мА, тогда на общем катоде должно быть 7 * 4 = 28 мА (цифра 8, т.е. горят все сегменты). Т.е. это небольшое, но превышение макс тока на ногу 20 мА. И надо общий вывод подключать через транзисторный ключ.
      Взял мультиметр. Результаты замера: ток каждого сегмента ~2.5 мА, ток общего катода 5 мА. Вот тут я подумал о школе Хогвардс))) Как все таки рассчитывается все таки ток на общем выводе? 
    • Автор: art_budka
      Ищу подрядчика для разработки проекта робота-рисовальщика. Есть бюджет, ТЗ. 
      Устройство представляет собой манипулятор передвигающий головку в плоскости XY в пределах жесткой рамы на которой установлены двигатели и направляющие перемещения. Головка представляет собой блок, отвечающий за передвижение закрепленного в фиксаторе объекта-пера по оси Z на расстояние до 20 мм. Фиксатор на элементе подъёма головки должен обеспечить жесткое закрепление предметов массой 10 - 80 грамм - кистей, шариковых ручек, карандашей и маркеров диаметром от 5 до 20 мм.
      Решение необходимо для обеспечения точных, многократно повторяющихся перемещений “пера” над плоской поверхностью. Для формирования движений в устройстве должна быть реализована электромеханическая схема, подключенная посредством USB-интерфейса к персональному компьютеру для отправки команд на манипулятор и получения обратной связи от контроллера манипулятора. 
      ТЗ, смета и бюджет через art_budka@rambler.ru 
    • Автор: green_whale
      Доброго времени суток.
      Собственно, сразу к делу. Необходимо измерить вч напряжение (частота порядка 20кГц, максимальная амплитуда 75мВ) с помощью микроконтроллера (скорее всего будет использоваться Arduino).
      Форма входного сигнала - пила (возрастает от минимального значения до максимального). Сигнал однополярный.
      Измерить нужно именно максимальное значение входящего сигнала. Измерение должно быть весьма точным (желательно, чтобы погрешность не превышала 1-2%).
      Есть пару идей :
      1. Сгладить сигнал, используя пиковый детектор (сможет ли сигнал такой частоты и формы зарядить конденсатор?).
      2. Использовать цап для генерации постепенно снижающегося напряжения и аналоговый компаратор.

      Надеюсь, кто-нибудь уже решал подобную проблему и сможет помочь советом или схемой.
    • Гость мистер_чувак
      Автор: Гость мистер_чувак
      Здравствуйте. Нашёл свои старые китайские портативные колонки, которые давно уже разобрал и потерял некоторые провода. Помогите разобраться, что к чему соединять, чтобы работало.
      фотка1
      фотка2
      фотка3
      фотка4
      фотка5
      фотка6
      фотка7
    • Автор: butyavk
      Компания "Диаконт" приглашает на собеседование по вакансии инженер-программист микроконтроллеров.
      Мы производим и поставляем современные приборы управления электроприводами для различных отраслей отечественной промышленности.
      Пополняем нашу команду программистов (готовы принять 2-3 кандидатов с различным опытом работы)!

      Основные обязанности:
      Разработка программного обеспечения для блоков управления приводами и др. вычислительных систем.
      Программирование на C++ микроконтроллеров фирмы Texas Instruments и НИИЭТ на базе ядра ARM Cortex-M4.
      Поддержка и доработка существующего программного обеспечения.
      Участие в научно-исследовательских и опытно-конструкторских работах.
      Участие во внедрении систем на объектах (редкие командировки).

      Требования к кандидатам:
      Хорошее знание схемотехники;
      Знание методов разработки и проектирования ПО для микроконтроллеров и опыт работы с их периферией;
      Знание основ управления электроприводами и ТАУ;
      Знание языков программирования высокого уровня (C++, C);
      Знание современных методов разработки ПО (ООП, ...);
      Знание английского языка (чтение технической документации);
      Приветствуется знание Python, Matlab/Octave;
      Дополнительным плюсом будет опыт автоматизированного тестирования встроенного ПО.

      Условия:
      Оплата полностью белая (на руки в зависимости от знаний и опыта от 50 000 руб до 100000 руб). Но, готовы обсуждать!;
      Карьерный и профессиональный рост;
      Предприятие с комфортными условиями труда на севере города;
      ДМС;
      График работы понедельник - пятница 9:00-17:40;
      Плавающее начало работы с 8:00-10:00;
      Льготное питание в столовой на территории предприятия;...

      Ключевые навыки
      Программирование микроконтороллеров
      C/C++
      Управление электродвигателями

      Адрес
      Санкт-Петербург, ул. Учительская 2, м. Гражданский проспект

      Тип занятости
      Полная занятость, полный день

      Резюме лучше отправлять на rykov@diakont.com