Onixx

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

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

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

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


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

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

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


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

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

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


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

Найдите миллионы труднодоступных

электронных компонентов

Igor-13    1

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

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


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

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

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

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


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

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

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

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


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

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

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


Ссылка на сообщение
Поделиться на других сайтах
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    551

if-else в АСМе ?

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

Вот это :

start
addlw 1
movwf OSCCAL
goto start
END

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

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

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


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

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

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

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


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

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

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
Alex    551
Алекс, так делать низя :)
Ну может быть :)
все равно задержка еще нужна
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    307

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

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

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


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

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

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

start

goto $+1

goto start

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


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

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

ATMEGA16a в Atmel Studio

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


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

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

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


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

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

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


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

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

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

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

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

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

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

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

Загрузка...

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

    • Гость Keil
      Автор: Гость Keil
      Добрый день, ситуация такая - попались мне под руку куча рассыпухи в числе которых достаточное количетво тинек и прочей лабуды - пытась хеловродить, попробовал взять готовый пример работы тиньки и лсдишника здесь также имею ардуинку как  Айсипи и чудесно мигаю светодиодом на мк прошитом ею же  так вот при попытке залить код который по ссылке чуда не произошло.
      курение мануалов лсдишника дало понять лиш одно что старший и младший биты одинаковы с лсдишником со статьи - лсдишник рабочий (игрался контрастом одной строки через V0  и потенциометр ) - как в прочем и мк, было задумано ковырнуть все это в протеусе и атмельстудии, но результатом не увенчалось. Пожалуйста тыкните носом что да где не так.
      fail.zip
    • Автор: В гостях у Михалыча
      Приветики. На днях купил колонку сгоревшую под ремонт. При нажатии на кнопку включения сразу же нагревается микросхема (B6THM1016 1516arz) В интернете вообще нет ничего о ней. Как я понял, это контроллер сенсорных кнопок и питания (даже если включить зарядку, то микруха не греется, пока не нажмешь на кнопку), ибо есть еще две микросхемы, одна из них усилитель, а вторая-блютуз. Может ее получится как-то заменить или выкинуть вообще? 


    • Автор: Сергей Скопинцев
      Нужно разработать циклическую программу сбора информации от 10 измерительных источников. Период повторения цикла - одна секунда
      Источники:
       М - тензопреобразователь давления. Мостовая схема питается постоянным напряжением, выходной сигнал от 0 до 100 милливольт
       Т, ТМ, ТА- три канала измерения изменения напряжения в диапазоне от 400 до 600 милливольт (тоже нужен мост?)
       ЛМ - анализатор максимума напряжения (от 0 до 5 Вольт) по 10 точкам более-менее распределённых в измерительном цикле. Найденный максимум потом должен участвовать в анализе, постепенно уменьшаясь на 20% каждый цикл
       ВЛ - измерить напряжение на Малой емкости (50 пФ) с помощью емкостного делителя по алгоритму:
                         Снять Землю со средней точки емкостного делителя, подать на емкостной делитель положительный Импульс
                         Замерить нужное нам напряжение в средней точке делителя
                         Снять положительный Импульс с делителя, посадить на землю среднюю точку делителя
      - остальные каналы К7...К10  служебные
      Разрядность данных - 16 двоичных.

      Результаты писать на MicroSD текстовым файлом, на первом месте в строке текущее время в секундах, остальные каналы разделены пробелами
      Порядок каналов:
      Т - М -ТМ - Вл - ЛМ -...
      Коэффициенты усиления по каждому информационному каналу должен иметь возможность изменить оператор по формуле y = Ax + B
      Прибор автономный, питается от + 5 Вольт.
       
    • Автор: Ru_s
      Здравствуйте. Подскажите пожалуйста, возможно ли на attiny13 реализовать такую штуку. Мне в процессе работы программы нужно поменять режим работы таймера/счетчика с fast PWM на обычный счёт, отсчитать длительный промежуток времени и опять вернутся в режим ШИМ. Т.е. я подаю на ногу сигнал ШИМ и когда он в максимальном значении, я его отключаю, и тупо подаю на ногу высокий лог. уровень. В это время Т/С по идее свободен, и мне надо посчитать время работы выхода на максимальном лог. уровне, при достижении какого-то значения времени нужно перевести т/с обратно в ШИМ. Возможно ли это? И как приблизительно это реализовать
    • Автор: Kiraspbkiev Kira
      День Добрый. Есть два вопроса от новичка: 1) Правильная ли схема сделанная мною? 2) если схема верна то как правильно подключить к atmega328p-mu usb на чипе cp2102-grm?
      На схеме колодка JP1 это AVR ISP а JP2 это UART
      С проектированием столкнулся в первый раз, цель узнать что то новое и сделать своими руками:)