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

crazz

Рекомендуемые сообщения

Помогите, изменрить секундомером подпраграмму PAUSE__2, PAUSE__1 я измерил закоментировав переход в п.п PRD в место него NOP, но вторую не могу, там переходы в пп CYCLE, закоментировав их получается меньше времени, должно быть 344мкс.

cus_1.rar

Не цитируите полностью предыдущее сообщение!!!

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

стрелка в скобки, стрелка через скобки и стрелка из скобок?

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

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

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

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

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

START	  clrf			IntCon	 ; Запрет прерываний.
			clrwdt
			bsf		   Status,RP0
			movlw	   00h		 
			movwf	   TrisA	   ; Все нули(все на выход)
			movlw	   .143		; Выключение подтягивающих резисторов порта В.
			movwf	   OptionR	; Предделитель с Кдел.=128 (18мс.*128=2,3сек.) подключен 
										   ; к WDT, остальное - не важно.

При ассемблировании ругается, на неправильный выбор банка. Строчка movwf TrisA ; Все нули(все на выход)

Не цитируите полностью предыдущее сообщение!!!

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Чтобы не ругался нужно написать так:

				movlw	   00h		
			bsf		   Status,RP0
			movwf	   TrisA	  ; Все нули(все на выход)

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

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

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

Спасибо, еще вопросик:

Если у меня кнопка с нормальноразомкнутыми контактами и я опрашиваю её состояние на наличие"0"( подсоединена к земле), то в каком состоянии будет вход порта, с разомкнутои кнопкой?

Не цитируите полностью предыдущее сообщение!!!

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

неопределенном. Любая наводка - будет менять его состояние произвольно. чтобы этого небыло - его надо подтянуть резистором к +

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

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

Спасибо, значить можно и включить подтягивающие резисторы порта"Б", я сейчас работаю только в симуляторе, поэтому наводок не должно быть:).

Не цитируите полностью предыдущее сообщение!!!

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

есть ли формула, для расчета констант записываемых в регистры для их декремента (инкремента) при отсчете времени. Если применять распостроненный кварц на 4мГц.

Извиняюсь, нашел классную прогу. Расчет временных интервалов, констант. Вобщем ВОТ.

Не цитируите полностью предыдущее сообщение!!!

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

Сделал програмку для светодиода, схема простая, "как мир" да вот же она

677894m.jpg

Светодиод должен мигать с частотои 2Гц, то-есть 1сек-горит, 1сек- не горит. Но когда нажимаешь на кнопку горит 2 секунды, а одну не горит.

Так вот и это у меня не работает в протеусе. Посмотрите, мож что не так сделал?

;--------------------------------- "ШАПКА"  ПРОГРАММЫ ----------------------------------------
;*********************************************************************************************
; Файл текста программы: diod.asm        
; Используется микроконтроллер PIC16F84A. Частота кварца 4000кГц.
;*********************************************************************************************
                         LIST       p=16F84A           ; Назначение типа ПИКа: PIC16F84A.
                         __CONFIG   03FF5H           ; Установка битов  конфигурации: стандартный XT-генератор,
                                                  ; WDT включен, бит защиты не установлен, PWRT
                                                  ; включен (1111 0101).
;=============================================================================================
; Определение адресов регистров специального назначения.
;=============================================================================================

                OptionR     equ        81h                ; Регистр Option - банк1
                Status       equ        03h                 ; Регистр Status
                PortA        equ        05h                  ; Порт A         - банк0
                PortB        equ        06h
                TrisB        equ        86h
                TrisA        equ        85h                  ; Регистр Tris A - Банк1
                IntCon      equ        0Bh                 ; Регистр IntCon
;===============================
                SecL        equ        0Ch         ; Младший байт счетчик времени полупериода.

                SecH        equ        0Eh         ; Еще один.

                F            equ         1             ; Результат направить в регистр, с содержимым которого      
                RP0         equ        5             ; Присвоение 5-му биту регистра STATUS названия RP0.
                org        0                            ; Начать выполнение программы
                goto       START                    ; с первой команды подпрограммы START
;===============================
START        clrf          IntCon                    ; Запрет прерываний.
                 clrwdt
                 bsf            Status,RP0              ; Установить в 1 пятый бит
                 movlw       00000000               ; Банк 1           
                 movwf       TrisA                     ; Все нули(все на выход)
                 movlw       10000010               ; Выключение подтягивающих резисторов порта В.
                 movwf       OptionR                 ; 
                 movlw       00000001               ; RB0 на вход(кнопка)
                 movwf       TrisB 
                  bcf         Status,RP0                ; Банк0
;==================== =
CUCLE         btfss        PortB,0                    ; Опрос кнопки на наличие "0", если "0", 
                  goto         METKA
;======================             ; Положительный первой частоты
                  bsf            PortA,0
                  movlw       .75
                  movwf       SecL
                  movlw       .2
                  movwf       SecH
PAUSE_1      decfsz       SecL, F
                  goto          PAUSE_1
                  decfsz       SecH, F
                  goto          PAUSE_1
                  clrwdt
;=================================
                  bcf            PortA,0                ; Отрицательный полупериод                 
                  movlw       .75
                  movwf       SecL
                  movlw       .2
                  movwf       SecH
PAUSE_2      decfsz       SecL,F
                  goto          PAUSE_2
                  decfsz       SecH,F
                  goto          PAUSE_2
                  goto          CUCLE 
;=================================     Вторая частота
;================================= 

METKA          bsf             PortA,0                   ; Две сек положительный полупериод
                   movlw       .151
                   movwf       SecL
                   movlw       .3
                   movwf       SecH
PAUSE_3       decfsz       SecL, F
                   goto          PAUSE_3
                   decfsz       SecH, F
                   goto          PAUSE_3
                   nop
                   clrwdt
;=================================

                   bcf             PortA,0                ; Отрицательный полупериод 2сек               
                   movlw       .151
                   movwf       SecL
                   movlw       .3
                   movwf       SecH
PAUSE_4       decfsz        SecL,F
                   goto          PAUSE_4
                   decfsz       SecH,F
                   goto          PAUSE_4
                   nop
                   goto          CUCLE
                   end

Отредактировал в читатетебельную форму. И правильный конечный код.

diod.zip

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

Не цитируите полностью предыдущее сообщение!!!

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

Не занимайтесь фигней. В MPLABE 8.20(8.30) есть симулятор, а в нем логический анализатор. Можно выводить на эпюру любую ногу и по шагам видеть инкремент таймера, замерять время (в машинных циклах). И запомните - симуляторы не работают в реальном времени - не хватает производительности компьютера.

Во вторых, для просмотра Вашего кода нужно, как минимум, что бы Вы писали код в удобочитаемом виде. Загрузку регистров в которых каждый разряд управляет разными устройствами (например OPTION_REG) нужно писать в бинарном виде: b'0001100' (это просто пример).

Кто будет вручную разбирать Ваше десятичное представление?

戦う前に相手のベルトの色に注目

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

Не знаю, мне показалось, что человек разбирающийся, с одного взгляду определит ляп, не вникая в подробности, а ляп действительно был.( Утро, вечера мудренее)

Кстати, вроде все посмотрел, но где симулятор в MPLAB не видел.

Не цитируите полностью предыдущее сообщение!!!

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

В выплывающем меню инструменты имеется строка MPLAB SIM - это и есть симулятор. Без него проку от MPLABa чуть... Во вторых и одного взгляда не будет, если я вижу вопрос с таким оформлением текста. Имейте уважение к чужому времени и усилиям. Кроме того, правильная запись на 50% спасает от ошибок...

戦う前に相手のベルトの色に注目

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

Спасибо, я про MPLAB SIM знаю, в нем и работаю, но логический анализатор не найду, возможно надо "докачать" плагин?

А вот пока писал сообщение, разобрался с симулятором PROTEUS VSM, в нем тоже есть анализатор , но пока не поиму как работает.Для меня пока светодиод- это и есть анализатор.

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

Пытался сегодня отредактировать код( выровнять столбцы), но это оказалось сущей проблемой!

Так что код прилагается в прикрепленном файле, там все ровно.

На картинке симулятор PROTEUS VSM

677928m.jpg

Не цитируите полностью предыдущее сообщение!!!

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

Надо-же, такои "глюк протеуса " так долго не давал мне покоя оказалось что все то в моей программе правильно, только вот протеус мигание светодиода отображает неверно, т.е когда светодиод горит с Частотои 1Гц, визуально наблюдаю примерно эту частоту, но когда нажму на кнопку диод загорается часто-хаотично. Это меня приводило к мысли, что моя прога неверна :).

Но подключив осцилограф (анализатором так и не научился) , всё встало на свои места. Показывает меандры с нужными периодами.

Не цитируите полностью предыдущее сообщение!!!

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

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

Лог анализатор появляется при активации симулятора на вкладке Вью внизу появляется анализатор и трейсер.

戦う前に相手のベルトの色に注目

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

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

Там где константы задают конфигурацию битами - очень плохо задавать в десятичном виде! очень-очень. Хоть они и константы...

Надо-же, такои "глюк протеуса "
Ну не успевает он в реальном времени обрабатывать программу контроллера, вот и подтормаживает. А еще у него глюк - когда подаешь на светодиод короткие импульсы у него мода фиксировать состояние светодиода только в определенные моменты времени - а они зависят лишь от частоты обновления картинки на экране, и получается вместо слабого свечения светодиод моргает почти беспорядочно.

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

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

Спасибо, да на "Протеус" полагаться нестоит, тем- более новичку.Про это хорошо на первых страницах этой темы написано.

у меня еще вопрос теоритический: Есть вход порта"Б"(RB0), и я то и дело опрашиваю его состояние. Но есть и выход порта"Б" (RB1), в который надо записать, допустим "1" , то какой байт мне записать в регистр портБ, не повлияет ли смена 0 на 1 на входе?

Пока писал вопрос, кажется додумал и ответ: Состояние входа не изменит, т.к меняет только выходы.

Поправьте, если не так.

Не цитируите полностью предыдущее сообщение!!!

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

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

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

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

Очередная проблемка с 628А, почемуто одни проблемы с ним :) Поначалу пики шились нормально... но через некоторое время стало происходить сие. В одном пике прошиваеться только адрес 0000h а во втором шьеться только до 000Bh. Дальше ошибка. Чтение происходит нормально. Программа типа ICProg, JDM программатор. Вроде бы так просто умереть не должны. Да и спалить вроде не мог. Ктонибудь с таким сталкивался?

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

Ничто не умирает так тихо, так быстро и наверняка, как транзистор...

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

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

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

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

100 000 у 628 вроде. НАпряжения все соблюдены... да и записал я максимум раз 30 в 1 и раза 3 во 2й. В общем, ладно... видимо померли...

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

Ничто не умирает так тихо, так быстро и наверняка, как транзистор...

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

High Endurance FLASH/EEPROM Cell

- 100,000 write FLASH endurance

- 1,000,000 write EEPROM endurance

- 100 year data retention

Ничто не умирает так тихо, так быстро и наверняка, как транзистор...

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

Желательно читать не только вводные тексты (они грешат рекламными извлечениями), но и основные таблицы эл.параметров, а там минимум в 10 раз меньше. Хотя и 10 000 не мало, но в упрощенных программаторах не очень соблюдают диаграмму... Кроме того, такое количество циклов при условии не более чем 10% на каждую ячейку. Значит если перепрошивать КАЖДУЮ (это не очень вероятно), то всего 1000 циклов.

Ну и на последок. Может мастерсброс сконфигурирован внутрь, а оболочка не поддерживает управление питанием?

戦う前に相手のベルトの色に注目

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

  Разрешено использовать не более 75 эмодзи.

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

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

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

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...