Регулятор мощностью паяльника на МК PIC16F676

Автор Boris, 26-11-2011, 20:17:52

« предыдущая - следующая »

0 Пользователей и 2 гостей просматривают эту тему.

Boris

Решил сделать своими силами для паяльника регулятор на  МК PICF676.Написал программку упрощенную.Потом буду по мере реализации одного из блоков регулятора и познании азов в програмировании,делать следующий.Сейчас занимаюсь прогонкой рабочей точки по всей программе.Столкнулся с непонятным для  меня явлением.При записи константы в регистр   w  , потом  перезаписи ее в другой   Pwr   , величина константы не сохраняется,а меняется все время на 47 п.п.1-2.  Проверка  п.п.3-4,наблюдал в окне МПЛАВ  'SFR'.Подскажите кто нибудь,где я ошибся.                                                                                       
                bcf          STATUS,RP0     
1.   movlw        .7               
2.   clrf              Pwr 
3.   movwf       Pwr         
4.   movlw        Pwr
5.   nop 
6.   и результат ?????47    :help01:

Catcatcat

26-11-2011, 20:54:11 #1 Последнее редактирование: 26-11-2011, 20:57:47 от Catcatcat
Цитата: Boris от 26-11-2011, 20:17:52
Решил сделать своими силами для паяльника регулятор на  МК PICF676.Написал программку упрощенную.Потом буду по мере реализации одного из блоков регулятора и познании азов в програмировании,делать следующий.Сейчас занимаюсь прогонкой рабочей точки по всей программе.Столкнулся с непонятным для  меня явлением.При записи константы в регистр   w  , потом  перезаписи ее в другой   Pwr   , величина константы не сохраняется,а меняется все время на 47 п.п.1-2.  Проверка  п.п.3-4,наблюдал в окне МПЛАВ  'SFR'.Подскажите кто нибудь,где я ошибся.                                                                                       
                bcf          STATUS,RP0     
1.   movlw        .7               
2.   clrf              Pwr 
3.   movwf       Pwr         
4.   movlw        Pwr
5.   nop 
6.   и результат ?????47    :help01:


                bcf          STATUS,RP0     
1.   movlw        .7           // загружаешь число 7 в аккумулятор   
2.   clrf              Pwr      // очищаешь Pwr     
3.   movwf       Pwr          // загружаешь из аккумулятора 7 в Pwr     
4.   movlw        Pwr      // загружаешь адрес расположения регистра (переменной) Pwr      в аккумулятор



командой movfw        Pwr ты вызывашь в аккумулятор значение перемееной
командой movlw        Pwr - её адрес

Boris

26-11-2011, 21:53:38 #2 Последнее редактирование: 26-11-2011, 22:37:20 от Boris
Спасибо, Вы не представляете как рад подсказке,все получилось.Правда выполнение команд
bsf         PORA,0         ; включить симистор
bcf         PORTA,0         ; ychet > 10, отключить симистор.
в том же окне SFR не вижу,бит не меняет "0" значения.РегитртыTRISFA,C прописаны в 1,а portA "0"банке нулевой.Что еще нужно?

Sasha

Паяльник с микропроцессором - жесь  :-[
Даешь паяльнику интернет-браузер на ассемблере!
skype: ab.sasha

Boris

26-11-2011, 22:32:16 #4 Последнее редактирование: 26-11-2011, 22:34:28 от Boris
Спасибо за помощь.Все получилось.Сейчас остановился на командах
bcf         PORTA,0         ; ychet > 10, отключить симистор.
bsf         PORTA,0         ; включить симистор
                 нет изминений в окне SFR, нулевой байт не миняет свое значение.Вкл. работа "0" банка,регистры в1
;инициализация  регистра  TRISA
movlw   b'00110100'
  movwf   TRISA

Catcatcat

Цитата: Boris от 26-11-2011, 22:32:16
Спасибо за помощь.Все получилось.Сейчас остановился на командах
bcf         PORTA,0         ; ychet > 10, отключить симистор.
bsf         PORTA,0         ; включить симистор
                 нет изминений в окне SFR, нулевой байт не миняет свое значение.Вкл. работа "0" банка,регистры в1
;инициализация  регистра  TRISA
movlw   b'00110100'
  movwf   TRISA

Такой инициализации недостаточно
;инициализация  регистра  TRISA
movlw   b'00110100'
  movwf   TRISA

Необходимо отключить компараторы и отключить АЦП

bsf STATUS,RP0      ;  выбрать банк 1
clrf ANSEL                ; отключение АЦП
bсf STATUS,RP0     ;выбрать банк 0
movlw 05h                ;отключение компаратора
movwf CMCON        ;

Boris

Протестировал и опрос кнопок.Всеработает правильно,если ветвление команд делать однозначными.Т.е. прорграмма на этих двух подпрограмм работает.При исполнении их только не реагирует (спит)
bsf         PORTA,0         ; включить симистор.
Это наверное из-за того ,что  МПЛАВ выдает Register in operand not in bank 0 при проверке по трем регистрам программы.Я их прописал
    bcf    STATUS,RP0      ;  Переходим в "0" банк.
             movlw      .0                       ;  Mодуль АЦП выключен 
             movwf      ADCON0          ;и не потребляет тока.   
          ;инициализация  регистра  INTCON. 
             movlw      b'10000000'     ;  Bсе прерывания
             movwf   INTCON                ;запрещены.
          ;инициализация  регистра CMCON.
           movlw        b'00000111'     ;   Отключить входы
           movwf     CMCON                ;компаратора   
            bsf    STATUS,RP0        ;  Переходим в "1" банк
          ;инициализация  регистра  TRISA.
            movlw   b'00110100'   ; Порты RA2,RA4,Ra5 на вход, остальные выход.
            movwf   TRISA
          ;инициализация  регистра  TRISC.
            movlw   b'00000000'     ;  Все порты
            movwf   TRISC                ;на выход
          ;инициализация  регистра  OPTIONS_REG.   
Сейчас исправлю.Вот что значит, не знать перевода инстукции использования МК.

Boris

27-11-2011, 08:30:59 #7 Последнее редактирование: 27-11-2011, 08:33:53 от Boris
     :hands01:Все получилось,Вам спасибо за подсказку.Сейчас программа бегает как белка в колесе,даже лучше,она останавливается на переыв,а программа пока нет.Включу ее для тестирования до вечера,посмотрим что из этого получится.А пока буду пробывать задержки писать. :)
Вопрос.Вы отключили компаратор его 5 бит. ,который в регистре затемнен(нерабочий).Я откл. 111 в 0-2 байт.Так тоже работает.Вы же использовали бит по умалчиванию,который автоматом выставляется сам.Так?И почему если так?
Я думал,что если откл. модуль АЦП,сниму напряжение с него,значит он будет отключен.Неверно думал,АЦП оказалось более емким.Скажите Вы сами переводите или есть русская документация.Если есть ,не смогли бы ей поделится?

Catcatcat

Цитата: Boris от 27-11-2011, 08:30:59
     :hands01:Все получилось,Вам спасибо за подсказку.Сейчас программа бегает как белка в колесе,даже лучше,она останавливается на переыв,а программа пока нет.Включу ее для тестирования до вечера,посмотрим что из этого получится.А пока буду пробывать задержки писать. :)
Вопрос.Вы отключили компаратор его 5 бит. ,который в регистре затемнен(нерабочий).Я откл. 111 в 0-2 байт.Так тоже работает.Вы же использовали бит по умалчиванию,который автоматом выставляется сам.Так?И почему если так?
Я думал,что если откл. модуль АЦП,сниму напряжение с него,значит он будет отключен.Неверно думал,АЦП оказалось более емким.Скажите Вы сами переводите или есть русская документация.Если есть ,не смогли бы ей поделится?
Ни в ацп, ни самих компараторах дело. Дело, в том, что есть регистры, которые управляют, какое устройство подключено к ножке (к выводу) контроллера. И именно в этих регистрах ножка контроллера подключается или к порту ввода вывода или к АЦП (или к компаратору). И при этом не зависит, включен сам модуль АЦП или нет.

ЦитироватьВопрос.Вы отключили компаратор его 5 бит. ,который в регистре затемнен(нерабочий).Я откл. 111 в 0-2 байт.Так тоже работает.Вы же использовали бит по умалчиванию,который автоматом выставляется сам.Так?И почему если так?

я тут не разбирался, я взял, то, что написано в описании

Boris

   :)Еще раз хочу выразить благодарность, за оказанную помощь. :help01:Во вторник базарный день в г.Донецк,поеду покупать МОС3041, тр-р 220/6-9в и светодиоды.Начну ваять И посмотрю на его в деле.Портов свободных мало  в мк для меня, на этом этапе.Да и желание, увидеть все на яву побыстрей.Потом сделаю на индикаторе.

Catcatcat

27-11-2011, 20:00:34 #10 Последнее редактирование: 28-11-2011, 08:07:33 от Catcatcat
ЦитироватьНеверно думал,АЦП оказалось более емким.Скажите Вы сами переводите или есть русская документация.Если есть ,не смогли бы ей поделится?

http://www.microchip.ru/ есть русские описания.

Catcatcat

Проверял русские описания PIC http://www.microchip.ru/lit/?mid=1x0 все скачивается и все читается.

Boris


Boris


Boris

 Выскакивает ошибка: Argument out of range (not a valid config register address)

__CONFIG             H'0F86'     ;& _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDTE_OFF & _INTRC_OSC_CLKOUT   

Старый МПЛАВ не считал конфигурацию за ошибку.Новый 8.6 выдаеет ошибку.Пробывал  и шестьнадцатиричное число и прописью,не получается.Подскажите,  где собака сало зарыла?