АвторСообщение
moderator




Пост N: 1904
Зарегистрирован: 14.01.07
Откуда: Россия, Лиски
Рейтинг: 1
Фото:
ссылка на сообщение  Отправлено: 24.10.10 09:24. Заголовок: Как оформить проект, и обо всем




В радиотехнике, существует два вида неисправностей-есть контакт там, где его не должно быть никогда и, нет контакта там, где он должен быть постоянно. Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


moderator




Пост N: 1908
Зарегистрирован: 14.01.07
Откуда: Россия, Лиски
Рейтинг: 1
Фото:
ссылка на сообщение  Отправлено: 24.10.10 18:13. Заголовок: MAZ Отправлено: 16.1..


MAZ
Отправлено: 16.10.10 22:24.
Уважаемый Михаил Алексеевич mishandlen я удалил тему в которой Вы задали вопрос.
Сейчас не помню, где искать эту программу.
Пожалуйста, покажите Вашу программу и особенно конфигурацию.

m816ve90
mishandlen пишет:
цитата:
Вот это:
----------------------------------------------------------------------  
Debug build of project `C:\Files\PIK16F877A\877.mcp' started.
Language tool versions: MPASMWIN.exe v5.36, mplink.exe v4.36, mplib.exe v4.36
Preprocessor symbol `__DEBUG' is defined.
Sat Oct 23 10:57:36 2010
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\Files\PIK16F877A\877.mcs".
Clean: Done.
Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F877A "Untitled.asm" /l"Untitled.lst" /e"Untitled.err" /d__DEBUG=1
Warning[205] C:\FILES\PIK16F877A\UNTITLED.ASM 6 : Found directive in column 1. (LIST)
Warning[205] C:\FILES\PIK16F877A\UNTITLED.ASM 7 : Found directive in column 1. (__CONFIG)
Warning[205] C:\FILES\PIK16F877A


Немного потолмачим с аглицкого:
Сии ПРЕДУПРЕЖДЕНИЯ (варнинги) гласят о крайней нежелательности написания директив и опкода в ПЕРВОЙ колонке листинга.
Сделайте отступ в две табуляции и 205-ое предупреждение исчезнет.
Кроме того, имеется неопределенный в листинге регистр - Adcon1.
Дабы исправить эту ОШИБКУ (и впредь не допускать подобного безобразия) необходимо и достаточно прочесть мой предыдущий по теме пост. Ну и исполнить рекомендацию в нем... :)


MAZ
m816ve90 пишет:
цитата:
в ветке хедеров файл:
И забыть навсегда об описании регистров спецназначения, их бит, а так же синтаксиса конфигурационного слова.
Что бы не мучить читателей воспоминаниями о назначении бит конфига....

Объясните пожалуйста, слово хедеров
И если можно, что Вы имели ввиду "синтаксиса конфигурационного слова", если можно, наглядно.
Тут ветка для начинающих. Пытаемся во всем разобраться. Сам модератор - начинающий.



m816ve90
Sergey Roslik
пишет:
цитата:
Можно и так, но тогда обязательно надо прописывать регистры, как указано в *.ink файле данного конроллера.
т.е. TrisB уже не прокатит, MPLab обматюкает, надо будет прописать TRISB.


Давайте поспорим на что нибудь существенное, что при выключенной в редакторе МПЛАБа чувствительности к регистру прокатит даже если чередовать заглавные с прописными.
Кроме того, должен быть порядок. Забыли написание имени спецрегистра и/или его бита - открыли хедер и скопипастили оттуда.
Читать самопридуманные имена утомительно крайне...



m816ve90
Хедер - это жаргон от header - заголовок.
В окне проекта МПЛАБа имеется ветка хедер-файлов. Нужно при создании проекта присоединить туда одноименный с примененным контроллером файл из папки MPASM Suite Микрочиповского МПЛАБа. И во второй строке прописать сакраментальное #include.
Тогда случится чудо и все правильные имена из даташита АВТОМАТИЧЕСКИ окажутся объявленными. Просто потому, что это объявление сделали трудолюбивые америкосы из нашей горячо любимой фирмы в том самом хедере( можете его открыть редактором и подивиться)... :)



Sergey Roslik
m816ve90
пишет:
цитата:
Давайте поспорим на что нибудь существенное, что при выключенной в редакторе МПЛАБа чувствительности к регистру прокатит даже если чередовать заглавные с прописными.
Кроме того, должен быть порядок. Забыли написание имени спецрегистра и/или его бита - открыли хедер и скопипастили оттуда.

А теперь объясните это начинающему, который первый раз открыл MPLab.




m816ve90
Sergey Roslik
пишет:
цитата:
А теперь объясните это начинающему

В верхней строке окна МПЛАБа есть пункт Project - Build Option - Project - MPASM Assembler.
В нем нужно поставит галку в окне disable case sencitivity
Однако лучше писать традиционно. Ровно как в хедере и даташите. Читать проще. Другим. Вы же обращаетесь за помощью. Потому желательно чужое время и глаза беречь. :)


m816ve90
А вообще, господа-коллеги, настоятельно рекомендую в самом начале написания листинга СКОПИРОВАТЬ в него "рыбу" из одноименного с названием контроллера файла из папки MPASM Suite/Template/Code. Таким образом у Вас будет АВТОМАТИЧЕСКИ сформирована корректная и удобочитаема шапка, обработчик прерываний и сама секция кода. Останется только объявить переменные и написать код...


MAZ
цитата:
Хедер - это жаргон от header - заголовок.


Теперь понятно. То что ниже, то же понятно.
Я про синтаксис конфигурации. Может неправильно выражаюсь, как понимаю, Вы пишите про
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF ....
или про число?
Т.е. если число компилятор понимает, без хедера.
А с хедером, уже понимает буквы?



m816ve90
MAZ
пишет:
цитата:
Теперь понятно. То что ниже, то же понятно.
Я про синтаксис конфигурации. Может неправильно выражаюсь, как понимаю, Вы пишите про
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF ....
или про число?
Т.е. если число компилятор понимает, без хедера.
А с хедером, уже понимает буквы?

Компилятор понимает ровно то, что описано в проекте, включая присоединенные файлы.
Когда пишешь для себя шестнадцатиричное представление конфига - Бог с ним, о вкусах не спорят (возможно автор аскет и мазохист). Но когда публикуешь сии вирши, надлежит придерживаться ОБЩЕПОНЯТНОГО написания. И тут уж без текста никак. Ну а текст тот самый в хедере и объявлен.


MAZ
Я понял. Догадывался, но не проверял.
Кодом, с самого начала, показалось пользоваться неудобно.
Есть вопрос. Ладно. Сам проверю. Не буду отвлекать. Спасибо.
Очень рад, что к нам на форум приходят знающие люди, и благожелательные люди.


m816ve90
MAZ
пишет:
цитата:
Есть вопрос. Ладно. Сам проверю. Не буду отвлекать.

:) Вы не отвлекаете. Можете спрашивать в любой момент. Если присутствую тут и достоверно знаю ответ - всенепременно отвечу.


MAZ
Тогда с прошу, пусть наивно.
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF ....
Эту строчку надо писать самому? Ведь можно ошибиться в правописании.
Обычно пользуюсь готовой, уже не помню откуда скопировал.


m816ve90
Немного повторюсь. В открытом проекте, где ПРИСОЕДИНЕН хедер <имя контроллера>.inc откройте его, кликнув по нему мышью в окне проекта (ветка хедер файлс).
Перед Вами откроется ТЕКСТ. Самый обычный, точно такой же как в основном асм-листинге.
В самом низу этого текста будет описание бит конфиг-регистра (регистров). С комментами и правильным синтаксисом.
Если Вы желаете изменить имеющийся конфиг - замените интересующий пункт выбранным. Строго по синтаксису хедера (копипастом)
Начальный синтаксис строки __CONFIG как директива ассемблера описан в мануале на MPASM. Можно его удобно посмотреть в хелпе МПЛАБа, выбрав соответствующий топик в окне хелпера.
Но можно и не заморачиваться, просто копируя темплейты и, заменяя в них пункты конфига на свои.
Математически содержимое конфига образуется, если описание пунктов из хедера (шестнадцатиричное) логически умножить функцией побитного И. Это и записано в фрагменте из вашего поста.



MAZ
Точно. А я смотрю на "загагулину". И думаю, что она мне напоминает.
Спасибо!

Sergey Roslik
m816ve90
пишет:
цитата:
Однако лучше писать традиционно. Ровно как в хедере и даташите. Читать проще. Другим. Вы же обращаетесь за помощью. Потому желательно чужое время и глаза беречь

Полностью согласен, но сколько людей столько и мнений, у каждого свой "почерк" написания программ.



m816ve90
Мнения могут быть относительно просмотренного фильма или прочитанной книги. А в технике подобные "мнения" называются дурным тоном (моветон, по французски). Ежели есть желание в обязательном порядке погулять по собственным граблям - велкам. Но умные люди обычно учатся на ЧУЖИХ ошибках...
Системное изложение, системная запись, строгое следование оптимальной форме и синтаксису даст неизбежно положительный результат.




Sergey Roslik
m816ve90
пишет:
цитата:
Но умные люди обычно учатся на ЧУЖИХ ошибках...

А доходит лучше на своих


Sergey Roslik
;****************************************************************************************   
; Работа с DS18B20
; Процессор PIC18F2520
; Резонатор 10 MГц
; Два термодатчика, 5 реле.
;
; Flag,0 - 0 - заслонка открыта; 1 - в среднем положении.
; Flag,7 - 0 - заслонка закрыта; 1 - в среднем положении.
;
;1000 оборотов - 33 импульса.
;****************************************************************************************
List P=18F2520
#Include <P18F2520.INC>
Errorlevel 2
;***************************************************************************************
; Конфигурирование.
;***************************************************************************************
CONFIG OSC=HS ; Кв. генератор работает в режиме HS.
CONFIG WDT=ON ; WDT выключен.
CONFIG WDTPS=1024 ; Постделитель WDT 1:128
CONFIG LVP=OFF ; Режим низковольтного программирования выкл.
CONFIG PWRT=ON
CONFIG BORV=2
;***************************************************************************************
Cblock
Temp_LSB ; Младший байт температуры.
Temp_MSB ; Старший байт температуры.
TH ; Верхний предел температуры.
TL ; Нижний предел температуры.
Rez_1 ; Байт конфигурации DS18B20.
Rez_2 ; Резерв DS18B20.
Rez_3 ; Байт COUNT_REMAIN DS18B20.
Rez_4 ; Байт COUNT_PER_C DS18B20.
CRC ; Контрольная сумма DS18B20.
CRC_1 ; Расчётная контрольная сумма.
Temp ; Регистр временных данных.
Bit ; Регистр количества битов.
Bait ; Регистр количества байт данных.
Count ; Счётчик задержки.
Flag ; Флаги.
Z1 ; Регистр знака температуры.
T3 ; Регистр температуры.
SecL ; Младший регистр задержки.
SecM ; Средний регистр задержки.
SecH ; Старший регистр задержки.
Tzo_1 ; Температура, ниже которой заслонка открывается.
Tzo_2 ; Температура, ниже которой заслонка открывается.
Tzp_1 ; Температура при 2000об.
Tzp_2 ; Температура при 1500об.
Tzp_3 ; Температура при 1000об.
Pech ; Температура включения печки.
Oborot ; Обороты прогрева двигателя.
Endc

;=============================================================================================
; Начало выполнения программы, инициализация контроллера.
;=============================================================================================
org 0xf00000
; 00h 01h 02h 03h 04h 05h 06h
de .20,.13,.10,.25,.36,.35,.80
;------- Настройки по умолчанию ----------
; 00h - Уставка первого порога заслонки Tzo_1 при остывании двигателя.
; 01h - Уставка второго порога заслонки Tzo_2 при остывании двигателя.
; 02h - Уставка прогрева двигателя при 2000об Tzp_1.
; 03h - Уставка прогрева двигателя при 1500об Tzp_2.
; 04h - Уставка прогрева двигателя при 1000об Tzp_3.
; 05h - Уставка включения печки.
; 06h - Начальные обороты прогрева двигателя.

Org .0
;==================================================================================================

Эта шапка относится к моветону ?


m816ve90
Только не лучше, а ЛЕГЧЕ. Тут трудно несогласиться. Но это просто ЛЕНЬ. За которую приходится платить. Ладно, если только потерянным личным временем. А то ведь и чужим тоже...




m816ve90

Sergey Roslik
пишет:
цитата:
Эта шапка относится к моветону ?

Если не считать некоторых синтаксических ошибок, нет не относится. Вполне читаемо.
ЗЫ. Точнее не ошибок, а странной неявной записи. Речь о размещении переменных с умолчательного нулевого адреса в ОЗУ.
Если пользоваться отладчиком, то в первые 16 ячеек он впишет свое. Так ичто лучше сдвинуть чуть далее.
Не понятно зачем выключать 2-ую ошибку?



MAZ
m816ve90
пишет:
цитата:
А в технике подобные "мнения" называются дурным тоном (моветон, по французски).

Наверно не в технике? В технике 30 лет.
Про " мнения", "дурные тоны", "традиции", не слышал.
Законы физики, математики, логики, специальность.
Открыть того же Атабекова, помогал сыну курсовую делать, на столе лежит. Там нет этих определений.
Зато в любой книге по программированию, полно. Особенно в сети.
Если логично сделать так, и не логично по другому, то тогда понятно, и нет вопросов.
Т.е., определенное действие, должно быть оправдано, прежде всего, логикой, а не ссылкой на традиции.
Мы этих определений нахлебались, от "консультантов". Пожалуйста, не надо, наступать на больное место..
У Вас с этим проблем нет, Вы логичны.


Sergey Roslik
m816ve90
пишет:
цитата:
Если не считать некоторых синтаксических ошибок, нет не относится. Вполне читаемо.

Ну уже есть к чему стремиться.


m816ve90
MAZ
пишет:
цитата:
Мы этих определений нахлебались, от "консультантов".


Позвольте сразу расставить точки. Как бы это не было обидно. Я и есть такой "консультант". Если хотите.
Радиоинженер с 81-го года. ПИКи для меня ПРОФЕССИЯ. Я на них создаю продукт. Ежедневно. По 10...12 часов. Кроме выходных. Моветон - это непредсказуемый в итоге результат. И по качеству и по срокам.
Увы.


MAZ
m816ve90
пишет:
цитата:
Моветон - это непредсказуемый в итоге результат.

Ну это же не логично? "Дурной тон"(mauvais ton) хорошо, пусть будет. Учил в школе французский. Тогда , в произношение звучит муле тон.
Почему не сказать, ошибочное решение, не предсказуемый результат, "не результат". Мы же русские люди?
Вы не такой "консультант", давно Вас знаю по сети. Искренне Вас уважаю, как Человека и спеца.
Про "консультанта" на соседней ветке. Когда силы кончились.
Не горячитесь. Я же честно и открыто высказал свое мнение. У Вас сложились предубеждения, расслабьтесь.
Здесь сначала думают о человеке, потом о всем остальном. Почитайте например эту ветку для примера, и сравните, что сказали бы где-то. Ни каких оскорблений и "подколов". За этим строго следим. Еще одно правило, не даем никому оскорблять наш народ.
Искренность, на искренность. Я, официально, офицер и радиоинженер с 86. Но в связи, со сложившимися обстоятельствами, пришлось больше бегать и ползать. Кто-то должен был это делать. Может порой крышу рвет, не обращайте внимания.
О такой работе как у Вас, можно только мечтать. Ну, не сложилось, о чем не жалею. Сейчас догоняю упущенное. Надеюсь и на Вашу помощь.
Вспомнил, насчет "рыбы". У нас так звали только дипломную работу, который дали переписать, т.к. 00, то на сутки. Бригадный подряд. Я писал сам, от корки до корки. Было интересно.


Rimsky
m816ve90
пишет:
цитата:
настоятельно рекомендую в самом начале написания листинга СКОПИРОВАТЬ в него "рыбу" из одноименного с названием контроллера файла из папки MPASM Suite/Template/Code.

спасибо, тоже оказалось новостью....


RW1ZK
Rimsky
пишет:
цитата:
тоже оказалось новостью....

Ну Вы блин даёте...


Sergey Roslik
m816ve90
пишет:
цитата:
Если пользоваться отладчиком, то в первые 16 ячеек он впишет свое. Так ичто лучше сдвинуть чуть далее.
Не понятно зачем выключать 2-ую ошибку?

Я пользуюсь отладчиком, всё работает, может он по умолчанию пишет в эти ячейки, а если они заняты, то в другие (свободные). С помощью шапки не трудно определить.
Удаление ошибки осталось от другого проекта видимо, я так понимаю они не выключаются, а просто не отображаются.
И в чём преимущество использования шаблона из MPLab?


MAZ
Sergey Roslik
пишет:
цитата:
И в чём преимущество использования шаблона из MPLab?

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


Sergey Roslik
;******************************************************************************
; This file is a basic template for assembly code for a PIC18F2520. Copy *
; this file into your project directory and modify or add to it as needed. *
; *
; Refer to the MPASM User's Guide for additional information on the *
; features of the assembler. *
; *
; Refer to the PIC18Fx420/x520 Data Sheet for additional *
; information on the architecture and instruction set. *
; *
;******************************************************************************
; *
; Filename: *
; Date: *
; File Version: *
; *
; Author: *
; Company: *
; *
;******************************************************************************
; *
; Files Required: P18F2520.INC *
; *
;******************************************************************************

LIST P=18F2520 ;directive to define processor
#include <P18F2520.INC> ;processor specific variable definitions

;******************************************************************************
;Configuration bits
;Microchip has changed the format for defining the configuration bits, please
;see the .inc file for futher details on notation. Below are a few examples.



; Oscillator Selection:
CONFIG OSC = LP ;LP

;******************************************************************************
;Variable definitions
; These variables are only needed if low priority interrupts are used.
; More variables may be needed to store other special function registers used
; in the interrupt routines.

CBLOCK 0x080
WREG_TEMP ;variable used for context saving
STATUS_TEMP ;variable used for context saving
BSR_TEMP ;variable used for context saving
ENDC

CBLOCK 0x000
EXAMPLE ;example of a variable in access RAM
ENDC

;******************************************************************************
;EEPROM data
; Data to be programmed into the Data EEPROM is defined here

ORG 0xf00000

DE "Test Data",0,1,2,3,4,5

;******************************************************************************
;Reset vector
; This code will start executing when a reset occurs.

ORG 0x0000

goto Main ;go to start of main code

;******************************************************************************
;High priority interrupt vector
; This code will start executing when a high priority interrupt occurs or
; when any interrupt occurs if interrupt priorities are not enabled.

ORG 0x0008

bra HighInt ;go to high priority interrupt routine

;******************************************************************************
;Low priority interrupt vector and routine
; This code will start executing when a low priority interrupt occurs.
; This code can be removed if low priority interrupts are not used.

ORG 0x0018

movff STATUS,STATUS_TEMP ;save STATUS register
movff WREG,WREG_TEMP ;save working register
movff BSR,BSR_TEMP ;save BSR register

; *** low priority interrupt code goes here ***


movff BSR_TEMP,BSR ;restore BSR register
movff WREG_TEMP,WREG ;restore working register
movff STATUS_TEMP,STATUS ;restore STATUS register
retfie

;******************************************************************************
;High priority interrupt routine
; The high priority interrupt code is placed here to avoid conflicting with
; the low priority interrupt vector.

HighInt:

; *** high priority interrupt code goes here ***


retfie FAST

;******************************************************************************
;Start of main program
; The main program code is placed here.

Main:

; *** main code goes here ***


;******************************************************************************
;End of program

END
Вот, я его достал. Могу я на это место вложить свой шаблон и при необходимости использовать, и каким образом?

Rimsky
Отправлено: Вчера 21:46.


Rimsky пишет:
цитата:
тоже оказалось новостью....

RW1ZK пишет:
цитата:
Ну Вы блин даёте...

На самом деле, лично мне эта "рыба" как собаке пятая нога для меня оказалось новостью сам факт наличие таких заготовок



RW1ZK
Отправлено: Вчера 21:52.

Rimsky пишет:
цитата:
для меня оказалось новостью сам факт наличие таких заготовок

Бывает... Раньше я тоже пользовался этим шаблоном. Потом остановился на приемлемом для меня.


MAZ
Отправлено: Вчера 21:58.

Я пользуюсь, по скудности своих запасов и знаний, несколькими типами контроллеров. В свое время создал свои шаблоны из предложенных и ими пользуюсь.
Зачем мне лишние слова, которые почти не понимаю. Заменил русскими.
Мне так удобно. Т.к. всегда пользуюсь отладчиком.
программа начинается ( для средних)
org 0x000 

nop ;чтобы не забыть
clrf PCLATH 

Прерывание не пишу. так как бывают, все равно, разные варианты.
C 18 только теоретически, так как пока не было надобности.
Программы пишу не ради программы, а ради устройства, где она будет работать. Радиолюбители, когда то были.
Т.е. нужен обязательно, конечный, реальный, результат в железе. И "сдача в эксплуатацию".
Под 18 пока нет реального проекта.

hotographer
m816ve90
пишет:
цитата:
настоятельно рекомендую в самом начале написания листинга СКОПИРОВАТЬ в него "рыбу" из одноименного с названием контроллера файла из папки MPASM Suite/Template/Code.

Классно, а я и не знал. Всем пригодится и мне.
Только вот слово "рыба" не нравится... не круто, ни разу. Может всё таки шаблон?

m816ve90
Когда я учился в школе и институте, под термином "рыба" понимался как раз шаблон. Шаблон лабораторки, шаблон сочинения и т.п. Давно это было...
Так что Вы правы. Это шаблон. Тем более, что по английски оно так и называется (tеmplate)


m816ve90
Отправлено: Вчера 22:00.

Я как раз отвечаю автору вопроса.
Так что все по теме.

Прежде всего нужно определится с прерываниями.
Если не требуется приоритетная двухуровневая система, то секцию "лоу приорити" по вектору 0х18 удаляем.
Остается только 8-ой вектор с быстрым сохранением контекста (т.е. сохранять программно вовсе не нужно, а выход по retfie FAST).
Далее удаляете все переменные связанные с сохранением контекста (WREG, STATUS, BSR) из секции данных.
После этого дописываете конфиг по своему коду (подглядывая за синтаксисом в хедер).
Наконец выясняете с потребностями по флешу данных (требуется ли предварительное программирование) и соответственно удаляете или исправляете эту секцию.
Ну и наконец, пишите свое поверх оставшегося и, соблюдая форматирование шаблона.
Единственно, что хотелось бы посоветовать - используйте две табуляции от левого края до кода и две табуляции от опкода до аргумента. Так читать много приятнее.
Ну и совсем напоследок. В 18-х ПИКах есть совершенный хит. Это конечно PIC18F25K20 ( и варианты этого камня с другой памятью и числом пинов). Стоит сущие копейки 65...70 рублей. 16 МИПС (64 МГц с ПЛЛ). Три брекпойнта в отладчике.
Я его сую практически во все проекты... С точки зрения функционала - усовершенствованная копия PIC18F2520, только питание 3,6 вольта. Но это у всех новых камней так.






В радиотехнике, существует два вида неисправностей-есть контакт там, где его не должно быть никогда и, нет контакта там, где он должен быть постоянно. Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 1911
Зарегистрирован: 14.01.07
Откуда: Россия, Лиски
Рейтинг: 1
Фото:
ссылка на сообщение  Отправлено: 24.10.10 21:02. Заголовок: MAZ Отправлено: Вче..


Machine slave
Отправлено: Вчера 22:07.

Приветствую. Небольшой вопрос.
MAZ пишет:
цитата:
программа начинается ( для средних)
org 0x000  
nop ;чтобы не забыть
clrf PCLATH

Зачем лишние "движения", если по сбросу при подаче питания (Power-on reset) и других вдах сброса(MCLR, BOR, WDT) PCLATH = 0?



m816ve90
Отправлено: Вчера 22:14.

MAZ пишет:
цитата:
Прерывание не пишу. так как бывают, все равно, разные варианты.

Какие такие варианты???
Сохранение - восстановление контекста стандартны. Семафор в начале обработчика дописываем и далее на каждое устройство свою секцию isr.
Не нужно воевать с МК. Есть достаточно стандартная технология написания кода по алгоритму. В этом смысле совершенно по барабану каким компилятором проектить устройство ассемблером или Си.
Все идеи только в алгоритме.
А про 18-ые это Вы зря...
Могу предложить помощь по любой Вашей идее. Просто буду подталкивать, а писать будете сами.
Уверяю Вас - это элементарно.



Machine slave
Отправлено: Вчера 22:19.

Лучше PIC18-х PIC24-е. Попробуете писать для них на ассемблере и возвращаться к PIC16 не захочется :)



m816ve90
Отправлено: Вчера 22:23.

Трудно не согласиться... :) Я именно так и делаю. В основном на PIC24H. Однако есть проекты, где 24-ый слегка дорог или не проходит по ресурсам. Поэтому делаю на 18-м.



MAZ
Отправлено: Вчера 22:50.

Machine slave пишет:
цитата:
Попробуете писать для них на ассемблере и возвращаться к PIC16 не захочется :)

Я тоже это знаю. Консерватор по натуре. И мне в них комфортно, страницы я не боюсь, банки тоже,
переполнения PCL, под контролем. Надо чуть внимательней и все. Инструмент проверен и отлажен.
Все устраивает. Была старая идея сделать ГКЧ, ГСС и т.д.с МТ12864. на 877А почти 40% реализовано, но потом отложил. Думал МЭЛТ 320х240 сделает, обещали. Но не судьба.
Освобожусь от обязательств попробую перейти с этой темой на 18. Тогда обязательно, обращусь. Но правда не люблю когда, "подталкивают". Наверно посоветуюсь, если что. Обычно, спросить не у кого, мы здесь практически на одном уровне обучения. Идти куда то, неприятно. И приходится решать вопрос самому. Потом делится с товарищами, так и растем.
сlrf PCLATH , это метка для себя, что не забыть про него. Я же не кому не навязываю и не учу.
Но чувствую, это жу, не спроста

Мужики. Вы мне столько вопросов и предложений накидали что не успеваю переваривать.
А тут еще тему переносить. Я не разу это не делал.
Что решим, продолжаем или по утру перенесу, когда будет поспокойно.


Sergey Roslik
Отправлено: Вчера 22:53.

m816ve90 пишет:
цитата:
Ну и совсем напоследок. В 18-х ПИКах есть совершенный хит. Это конечно PIC18F25K20 ( и варианты этого камня с другой памятью и числом пинов). Стоит сущие копейки 65...70 рублей. 16 МИПС (64 МГц с ПЛЛ). Три брекпойнта в отладчике.

Я в своё время купил PIC18F14K50 по 80р. Из-за USB, но в них не оказалось отладчика, что не очень удобно.
А в PIC18F25K20 так понимаю он есть. Надо взять на заметку.
Насчёт 18 пиков, это да, после них не хочется заниматься 16 серией.




MAZ
Отправлено: Вчера 23:09.

m816ve90 пишет:
цитата:
Однако есть проекты, где 24-ый слегка дорог или не проходит по ресурсам.

А у меня 876А и 877А лежит 18 и 22 штуки соответственно. Солить что ли?
И в моем мегаполисе, 18 на деревьях растут? Вообще ничего не растет.
Насчет прерывания. И по марксу, про среднее семейство. Раздел 8. стр14. Примеры 8.3/8.4
У меня сложилось впечатление, что не только STATUS и W надо сохранять. А еще чего нибудь.
например, из какого банка "залетел". Хотя этой процедурой не пользуюсь, как то не понятно, зачем.
Или я не прав? PCLATH точно надо сохранять, а то проблемы будут.
И самое главное, может и прерывания в программе не нужны. Бывает же такое.
Семафор в начале обработчика дописываем А что такое семафор?


m816ve90
Отправлено: Вчера 23:20.

Защелку старшего байта программного счетчика нужно сохранять только в одном случае. Если ее используют в прерывании.
Ну и ессно в суперлупе.
Использование этой защелки в прерывании - экзотика. Я, к примеру, это делал лишь однажды. Да и то по глупости. :)
Насчет прерываний.
Бывает, что и не нужны. Например в 10-х ПИКах. :) По простой такой причине. Их там вообще нет.
А так в практических проектах без прерываний - одна только головная боль и монстрообразный немодифицируемый код...
На ночь даже думать об этом не охота. Сразу голова болит.
:)



m816ve90
Отправлено: Вчера 23:29.

MAZ пишет:
цитата:
А что такое семафор?


Семафор - это ПЕРЕКЛЮЧАТЕЛЬ с единого вектора прерываний на ISR конкретного устройства.
Выглядит совершенно стандартно. Допускает упрощение, если по какому то из источников в программе не бывает запрета на прерывание.
Общий вид стандартного свича (на примере TMR0)?
............  
btfss INTCON, T0IE
goto $+3
btfsc INTCON, T0IF
goto isr_TMR0
............



MAZ
Отправлено: Вчера 23:34.

m816ve90 пишет:
цитата:
Защелку старшего байта программного счетчика нужно сохранять только в одном случае. Если ее используют в прерывании.

Возможно Вы и правы. Я сделал, это скорей всего, где то увидев. И не сильно подумав.
Надо будет про анализировать на досуге, для себя возможные варианты.
Насчет семафора понятно. Мы это называем, определение от чего произошло прерывание




Evgeny Korabelnikov
Вольный художник

Отправлено: Вчера 23:46.

Цитаты от m816ve90
А еще лучше вставить в шапке кода (второй строкой) присоединенный к проекту в ветке хедеров файл:
#include <p16f877a.inc>

Дабы исправить эту ОШИБКУ (и впредь не допускать подобного безобразия) необходимо и достаточно прочесть мой предыдущий по теме пост. Ну и исполнить рекомендацию в нем... :)
Читать самопридуманные имена утомительно крайне...


Смысл сказанного Вами понятен. Только Вы не в тот раздел попали (это для начинающих).
А смысл сказанного мной, Вы не уяснили (прежде чем вступать в дискуссию, желательно ознакомиться с содержимым форума. У меня уже на языке мозоль). Получаются "системные непонимайки/бестолковки", на "разборки" с которыми тратится много времени. Объясняю ещё раз (надеюсь, что последний). Образно.
Дано:
1. Головной мозг, основную часть которого занимает то, что работает на подсознание.
2. 1-е сентября и первоклассник с цветами.
3. "Привязка" к тому, что нужно каждому цивилизованному человеку: к арифметике.
4. Две системы обучения, одну из которых можно выбрать.

Система обучения №1. Советская, "старозаквасная". Одна из лучших (если не самая лучшая) в мире.
Первоклашке вручают счётные палочки, сразу же намекают на то, что нужно "пахать" и работа с калькулятором будет разрешена только после того, как он "погоняет их туда-сюда", выучит таблицу умножения (и т.д.) и научится качественно производить арифметические действия на бумаге (с упованием только на свои мозги и полученные знания). В процессе этой работы, подсознание очень обогащается (многими людьми этот мощнейший фактор недооценивается, а ведь это могуче помогает). И не может не обогатиться, ведь каждая написанная своей рукой цифирка, а также и производимая, мыслительная деятельность, "прогоняется" не только через сознание, но и через подсознание (ну и о душе не грех напомнить). Это что-то типа "курса молодого бойца", после прохождения которого, он ("боец") и возникает. Если у него отобрать калькулятор (или в нём батарейка села, или ещё что-то), то он спокойно решит задачу и без него.

Система обучения №2. Фурсенковская (и иже с ним. Это то, что сейчас навязывается)
Никаких "дебильных" счётных палочек. Зачем ими "заморачиваться" и излишне напрягать нежный, молодой организм?
Первоклашке сразу же вручают калькулятор и обучают его, на какие кнопки и как жать. Если они нажаты правильно, то калькулятор выдаст вожделеемое. Без проблем и быстро.
Если у такого первоклашки (а также и 2-, -3, …- клашки) отобрать калькулятор и заставить его решить даже простую задачу, то он окажется в ступоре.
Такая система образования, по причине своей привлекательности (лень сильна. А заодно и лукавый), очень заманчива, но это "сыр в мышеловке", приводящий к качественному снижению уровня образования, вплоть до "мыльных пузырей" и купленных дипломов.
И что самое интересное, частенько такую систему образования пропагандируют те люди, которые получили образование по варианту №1. Это очень печально.

Представьте себе такой маразм: курсантам военного училища умно читают лекции о марш-бросках, и не более того.
Это объяснить невозможно. Нужно поучаствовать в марш-броске и лично осознать (хотя бы один раз) все его прелести, а заодно и достойно выдержать лишения (лучше всего, в составе подразделения. Время засекается по последнему. И в полной выкладке). Без этого, будет не офицер, а недоразумение в погонах.
Не трудно догадаться о том, по какому варианту я работаю.
Надеюсь на то, что объяснил доходчиво.

Хедер - это жаргон от header - заголовок.
В окне проекта МПЛАБа имеется ветка хедер-файлов. Нужно при создании проекта присоединить туда одноименный с примененным контроллером файл из папки MPASM Suite Микрочиповского МПЛАБа. И во второй строке прописать сакраментальное #include.
Тогда случится чудо и все правильные имена из даташита АВТОМАТИЧЕСКИ окажутся объявленными. Просто потому, что это объявление сделали трудолюбивые америкосы из нашей горячо любимой фирмы в том самом хедере( можете его открыть редактором и подивиться)... :)

Вы напугали меня этим словом ("хедер"), так как я по-русски впечатлителен (фальклёрная аналогия какая-то …).
Вы объясняете то, что нам доподлинно известно. И без всяких чудес и дивления (разложено на молекулы). Просто всему своё время (человек до этой информации ещё не дошёл). Вы просто не в курсе. У нас это называется INC-файлом и применяется вовсю (на более поздних ступенях обучения).

Мнения могут быть относительно просмотренного фильма или прочитанной книги. А в технике подобные "мнения" называются дурным тоном (моветон, по французски). Ежели есть желание в обязательном порядке погулять по собственным граблям - велкам. Но умные люди обычно учатся на ЧУЖИХ ошибках...
Системное изложение, системная запись, строгое следование оптимальной форме и синтаксису даст неизбежно положительный результат.


Мнения могут быть по всем поводам. В том числе и в технике. Дурной тон? А у хулиганов какой тон?
На хулиганах весь прогресс держится. И что самое интересное, по совокупности причин, они очень склонны к систематизации "того-сего". А также и ко многому другому.

Позвольте сразу расставить точки. Как бы это не было обидно. Я и есть такой "консультант". Если хотите.
Радиоинженер с 81-го года. ПИКи для меня ПРОФЕССИЯ. Я на них создаю продукт. Ежедневно. По 10...12 часов. Кроме выходных.


Уважаемый m816ve90.
Точки будем расставлять мы. "Консультант" сам себя не назначает. Это "звание назначается" людьми.
Оно может быть присвоено, а может быть и нет. В нашей среде, это "звание" нужно заработать. Допустим, что уровень Ваших знаний высок. Мы таких людей приветствуем. Но этого мало. Сначала целесообразно разобраться с "правилами игры на нашей территории" и принять их. Важны также и человеческие качества (это на первом месте и их нужно доказать).
Вопрос: У Вас есть информация, созданная лично Вами и предназначенная для обучения начинающих? Или Вы их только консультируете?
Если есть, то просьба обнародовать.
Надеюсь на дружеское взаимопонимание и на взаимовыгодное сотрудничество.



Sergey Roslik
Отправлено: Вчера 23:51.

Применение прерываний значительно расширяет возможности программы и многозадачности контроллера.
К сожалению я ещё не разработал для себя надёжный механизм по работе с прерываниями.
Так по мелочи использую, по аналогии с 16 пиками. Но думаю этим заняться.



MAZ
Отправлено: Вчера 23:57.

Мне вот какая мысль, пришла в голову. Все таки большинство здесь начинают с нуля. Т.е. абсолютно с нуля.
Не зная сколько бит в байте. И Вы сразу предлагаете им начинать с 24 и 32.? Мне кажется это чересчур.
Чем 16-я отличается от 10-й. Здесь тихий островок, где никого не обидят.
Интересно, а с чего Вы начинали? Например в 81, а тем более в 70-х, к программированию подходили очень прохладно в ВУЗах.

Machine slave
Отправлено: Сегодня 00:04.

MAZ пишет:
цитата:
Не зная сколько бит в байте. И Вы сразу предлагаете им начинать с 24 и 32.

Извините что вмешиваюсь. Но начинать надо не с 10,12,16 и тп, а с элементарных основ: информатика, цифровая схемотехника, аналоговая схемотехника. Имея эту основу не важно с какого семейства начинать, байты везде одинаковые :)


m816ve90
Отправлено: Сегодня 00:08.


Уважаемый Евгений.
Мы с Вами ровесники. И к тому же земляки. Вы окончили училище связи, а я радиоинститут. С разницей в один год.
Потому, несмотря на то, что сей форум Ваш, позвольте попросить о небольшом отдолжении.
Не нужно учить меня КАК объяснять людям предмет моей профессии. Это не школа и тут не первоклашки, а вполне зрелые люди.
Попал я на Ваш форум ПО ПРИГЛАШЕНИЮ одного из модераторов. Никаких ОЦЕНОК лично Вам не давал и давать не собирался. Потому не понятно, отчего Вами же провозглашенные правила, Вы сами и не блюдете.
По поводу консультаций.
"Консультант" был заключен в кавычки. Речь шла в ПЕРЕНОСНОМ смысле. И мой собеседник и я вполне понимали о чем речь.
По существу.
У Вас имеются возражения по сказанному? Лично я обучался ровно так, как и объясняю людям. Причем в микрочиповском ассортименте относительно недавно и за пару месяцев.
Желаете учиться по частям, как собаке хвост рубить? Это Ваше право.
Но без меня.


m816ve90
Отправлено: Сегодня 00:30.

Коллеги.
Хотелось бы некоторых разъяснений по поводу ваших методов "самообучения".
Не обижайтесь на правду.
Так не учатся. Чем дольше идет освоение, тем меньше шансов, что оно вообще когда нибудь закончится.
Потому требуются некоторые усилия. Тем более, что речь идет о ЛЮБИМОМ хобби.
Нет резону изобретать велосипеды с деревянными колесами, проще освоить уже созданное. Особенно если учесть, что чипмейкеры (Микрочип не исключение) делают все, чтобы облегчить освоение своей элементной базы. Это и аппноуты и сборники разного рода примеров (Tips'n'Tricks) и примеры референсного кода.
Есть методы построения программ по разработанному алгоритму. Это все нужно осваивать СРАЗУ. Т.е. не писать всякую, извините, пургу, набивая себе глупые навыки, а сразу применять уже разработанные умными людьми (не нам чета) методы.
Даже если это хобби.


m816ve90
Отправлено: Сегодня 00:35.

MAZ пишет:
цитата:
Интересно, а с чего Вы начинали?

Я начинал в контроллерах с КР1816ВЕ35 и КР1820ВЕ1. Было это в 91-м. ВУЗовской подготовки мне вполне хватило. Даже более чем хватило.


В радиотехнике, существует два вида неисправностей-есть контакт там, где его не должно быть никогда и, нет контакта там, где он должен быть постоянно. Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 1
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия