Решил сделать своими силами для паяльника регулятор на  МК 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:
			
			
			
				Цитата: 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 - её адрес 
			
 
			
			
				Спасибо, Вы не представляете как рад подсказке,все получилось.Правда выполнение команд
 bsf         PORA,0         ; включить симистор
 bcf         PORTA,0         ; ychet > 10, отключить симистор.
в том же окне SFR не вижу,бит не меняет "0" значения.РегитртыTRISFA,C прописаны в 1,а portA "0"банке нулевой.Что еще нужно?
			
			
			
				Паяльник с микропроцессором - жесь  :-[
Даешь паяльнику интернет-браузер на ассемблере!
			
			
			
				Спасибо за помощь.Все получилось.Сейчас остановился на командах
 bcf         PORTA,0         ; ychet > 10, отключить симистор.
bsf         PORTA,0         ; включить симистор
                 нет изминений в окне SFR, нулевой байт не миняет свое значение.Вкл. работа "0" банка,регистры в1
;инициализация  регистра  TRISA
 movlw   b'00110100'
  movwf   TRISA
			
			
			
				Цитата: 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        ;
			
 
			
			
				Протестировал и опрос кнопок.Всеработает правильно,если ветвление команд делать однозначными.Т.е. прорграмма на этих двух подпрограмм работает.При исполнении их только не реагирует (спит)
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.   
Сейчас исправлю.Вот что значит, не знать перевода инстукции использования МК.
			
			
			
				     :hands01:Все получилось,Вам спасибо за подсказку.Сейчас программа бегает как белка в колесе,даже лучше,она останавливается на переыв,а программа пока нет.Включу ее для тестирования до вечера,посмотрим что из этого получится.А пока буду пробывать задержки писать. :)
Вопрос.Вы отключили компаратор его 5 бит. ,который в регистре затемнен(нерабочий).Я откл. 111 в 0-2 байт.Так тоже работает.Вы же использовали бит по умалчиванию,который автоматом выставляется сам.Так?И почему если так? 
Я думал,что если откл. модуль АЦП,сниму напряжение с него,значит он будет отключен.Неверно думал,АЦП оказалось более емким.Скажите Вы сами переводите или есть русская документация.Если есть ,не смогли бы ей поделится? 
			
			
			
				Цитата: Boris от 27-11-2011, 08:30:59
     :hands01:Все получилось,Вам спасибо за подсказку.Сейчас программа бегает как белка в колесе,даже лучше,она останавливается на переыв,а программа пока нет.Включу ее для тестирования до вечера,посмотрим что из этого получится.А пока буду пробывать задержки писать. :)
Вопрос.Вы отключили компаратор его 5 бит. ,который в регистре затемнен(нерабочий).Я откл. 111 в 0-2 байт.Так тоже работает.Вы же использовали бит по умалчиванию,который автоматом выставляется сам.Так?И почему если так? 
Я думал,что если откл. модуль АЦП,сниму напряжение с него,значит он будет отключен.Неверно думал,АЦП оказалось более емким.Скажите Вы сами переводите или есть русская документация.Если есть ,не смогли бы ей поделится?
Ни в ацп, ни самих компараторах дело. Дело, в том, что есть регистры, которые управляют, какое устройство подключено к ножке (к выводу) контроллера. И именно в этих регистрах ножка контроллера подключается или к порту ввода вывода или к АЦП (или к компаратору). И при этом не зависит, включен сам модуль АЦП или нет.
ЦитироватьВопрос.Вы отключили компаратор его 5 бит. ,который в регистре затемнен(нерабочий).Я откл. 111 в 0-2 байт.Так тоже работает.Вы же использовали бит по умалчиванию,который автоматом выставляется сам.Так?И почему если так? 
я тут не разбирался, я взял, то, что написано в описании
			
 
			
			
				   :)Еще раз хочу выразить благодарность, за оказанную помощь. :help01:Во вторник базарный день в г.Донецк,поеду покупать МОС3041, тр-р 220/6-9в и светодиоды.Начну ваять И посмотрю на его в деле.Портов свободных мало  в мк для меня, на этом этапе.Да и желание, увидеть все на яву побыстрей.Потом сделаю на индикаторе. 
			
			
			
				ЦитироватьНеверно думал,АЦП оказалось более емким.Скажите Вы сами переводите или есть русская документация.Если есть ,не смогли бы ей поделится? 
http://www.microchip.ru/ (http://www.microchip.ru/) есть русские описания.
			
 
			
			
				Проверял русские описания PIC http://www.microchip.ru/lit/?mid=1x0 (http://www.microchip.ru/lit/?mid=1x0) все скачивается и все читается.
			
			
			
				По этой да,по предыдущей нет.
			
			
			
				Скачал и запустил 8.6 .
			
			
			
				 Выскакивает ошибка:  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 выдаеет ошибку.Пробывал  и шестьнадцатиричное число и прописью,не получается.Подскажите,  где собака сало зарыла? 
			
			
			
				Цитата: Boris от 29-11-2011, 00:31:01
 Выскакивает ошибка:  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 выдаеет ошибку.Пробывал  и шестьнадцатиричное число и прописью,не получается.Подскажите,  где собака сало зарыла?
старый и неправильно конфигурировал контроллер, поэтому надо ошибки исправлять, а не переносить их в новые проекты. 
ЦитироватьH'0F86'     ;& _
такое написание недопустимо.
должно быть <параметр><пробел>&<пробел><параметр>  и так далее. Никаких запятых и точек с запятой между параметрами.
"Само написание" параметра необходимо смотреть в P16F676.INC (если для 676 контроллера) файле конфигурации.
; The following is an assignment of address values for all of the
; configuration registers for the purpose of table reads
_CONFIG          EQU  H'2007'
;----- CONFIG Options --------------------------------------------------
_FOSC_LP             EQU  H'3FF8'    ; LP oscillator: Low power crystal on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_LP_OSC              EQU  H'3FF8'    ; LP oscillator: Low power crystal on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_FOSC_XT             EQU  H'3FF9'    ; XT oscillator: Crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_XT_OSC               EQU  H'3FF9'    ; XT oscillator: Crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_FOSC_HS              EQU  H'3FFA'    ; HS oscillator: High speed crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_HS_OSC                  EQU  H'3FFA'    ; HS oscillator: High speed crystal/resonator on RA4/OSC2/CLKOUT and RA5/OSC1/CLKIN
_FOSC_EC                 EQU  H'3FFB'    ; EC: I/O function on RA4/OSC2/CLKOUT pin, CLKIN on RA5/OSC1/CLKIN
_EC_OSC                   EQU  H'3FFB'    ; EC: I/O function on RA4/OSC2/CLKOUT pin, CLKIN on RA5/OSC1/CLKIN
_FOSC_INTRCIO        EQU  H'3FFC'    ; INTOSC oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN
_INTRC_OSC_NOCLKOUT  EQU  H'3FFC'    ; INTOSC oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN
_FOSC_INTRCCLK       EQU  H'3FFD'    ; INTOSC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN
_INTRC_OSC_CLKOUT    EQU  H'3FFD'    ; INTOSC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN
_FOSC_EXTRCIO        EQU  H'3FFE'    ; RC oscillator: I/O function on RA4/OSC2/CLKOUT pin, RC on RA5/OSC1/CLKIN
_EXTRC_OSC_NOCLKOUT  EQU  H'3FFE'    ; RC oscillator: I/O function on RA4/OSC2/CLKOUT pin, RC on RA5/OSC1/CLKIN
_FOSC_EXTRCCLK       EQU  H'3FFF'    ; RC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, RC on RA5/OSC1/CLKIN
_EXTRC_OSC_CLKOUT    EQU  H'3FFF'    ; RC oscillator: CLKOUT function on RA4/OSC2/CLKOUT pin, RC on RA5/OSC1/CLKIN
_WDTE_OFF            EQU  H'3FF7'    ; WDT disabled
_WDT_OFF             EQU  H'3FF7'    ; WDT disabled
_WDTE_ON             EQU  H'3FFF'    ; WDT enabled
_WDT_ON              EQU  H'3FFF'    ; WDT enabled
_PWRTE_ON            EQU  H'3FEF'    ; PWRT enabled
_PWRTE_OFF           EQU  H'3FFF'    ; PWRT disabled
_MCLRE_OFF           EQU  H'3FDF'    ; RA3/MCLR pin function is digital I/O, MCLR internally tied to VDD
_MCLRE_ON            EQU  H'3FFF'    ; RA3/MCLR pin function is MCLR
_BOREN_OFF           EQU  H'3FBF'    ; BOD disabled
_BODEN_OFF           EQU  H'3FBF'    ; BOD disabled
_BOREN_ON            EQU  H'3FFF'    ; BOD enabled
_BODEN               EQU  H'3FFF'    ; BOD enabled
_CP_ON               EQU  H'3F7F'    ; Program Memory code protection is enabled
_CP                  EQU  H'3F7F'    ; Program Memory code protection is enabled
_CP_OFF              EQU  H'3FFF'    ; Program Memory code protection is disabled
_CPD_ON              EQU  H'3EFF'    ; Data memory code protection is enabled
_CPD                 EQU  H'3EFF'    ; Data memory code protection is enabled
_CPD_OFF             EQU  H'3FFF'    ; Data memory code protection is disabled
;----- DEVID Equates --------------------------------------------------
_DEVID1          EQU  H'2006'
;----- IDLOC Equates --------------------------------------------------
_IDLOC0          EQU  H'2000'
_IDLOC1          EQU  H'2001'
_IDLOC2          EQU  H'2002'
_IDLOC3          EQU  H'2003'
это строка из файла 16F676TEMP.ASM.
   __CONFIG   _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT 
её читают так, защита памяти программ - отключена, защита памяти данных EEPROM - отключена, контроль по понижению питания - отключен, вывод внешнего сброса - активен (включен), сторожевой таймер отключен, задежка по запуску при подаче питания включена, используется внутрений генератор, выводы генератора используются как порты ввода/вывода.
за основу используйте файл 16F676TEMP.ASM (скопируйте его в свою рабочию папку и переименуйте под свой проект)
ЦитироватьВыскакивает ошибка: Argument out of range (not a valid config register address)
потому, что вы не включили P16F676.INC в свой проект в котором содержиться описание адреса регистра.
			
 
			
			
				 :(Как понимать, в даташит печатают WDTE,а в файле и Вы WDT?Как написать конфигурацию в цыфрах Н ?. Регистр конф-и 13 битовый,получается 3 байта,а можем выразить только 2 байта.
Я написал __CONFIG     0F86Н- это выражение конф-и (цвет синий),значит нормально,но всеравно ругается.
 __CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT -цвет розовый,значит не правильно и ругается.
			
			
			
				Цитата: Boris от 29-11-2011, 11:05:20
 :(Как понимать, в даташит печатают WDTE,а в файле и Вы WDT?Как написать конфигурацию в цыфрах Н ?. Регистр конф-и 13 битовый,получается 3 байта,а можем выразить только 2 байта.
Я написал __CONFIG     0F86Н- это выражение конф-и (цвет синий),значит нормально,но всеравно ругается.
 __CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT -цвет розовый,значит не правильно и ругается.
От цвета независит, зависит от того правильно ли вы читаете ответ или дочитали до конца.
Решение вашей проблемы может быть следующее:1. дочитать до конца прерыдуший пост (и прописать адрес для __CONFIG, а также инициализацию констант _CP_OFF). 
2. дочитать до конца прерыдуший пост (и использовать для основы программирования, то что предлагает Microchip).
если непонятно могу расписать по шагам.
			
 
			
			
				 :(Пока повременим. Я запутался с новым МПЛАВ.Скачал анг. инструкцию и почти ни чего не понимаю.Русская есть, старой версии. Нада на новую.
			
			
			
				Запустил МПЛАВ 8.6,толко он сам устанавливает свою заготовку  хи-теч8.92. Все работает пока. Вставил свою болванку программы,создал нех файл. Правда ошибки выдал те же, что и старый,про его сомнения о регистрах  в банках.Но я, все вставил из .INC файла, как Вы советовали. В МПЛАВ 5.7 в окнах было все понятно .В этом же ,считываю информации пока , почти 0.Там регистр любой в полной красе,все как на ладоне.В этом, не вижу изминения,кроме в РС.Если можно, распишите кратко, как отладить код  программы.