Помогите разобраться новичку - Страница 8 - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 8 из 11«1267891011»
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Помогите разобраться новичку (как правильно?)
Помогите разобраться новичку
anatol Дата: Пн, 25.11.2013, 19:28  |                                                                                                                Сообщение # 106
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Это не подойдет? wink http://www.picbasic.ru/publ/priem_ik_signala_protokola_nec/1-1-0-117
ЯНДЕКС Дата: 25.11.2013
xaker-sss Дата: Пн, 25.11.2013, 20:46  |                                                                                                                Сообщение # 107
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 198
Репутация: 1   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Цитата anatol ()
Это не подойдет?
Надо подумать.


ПРОТОН ЭТО ВЕЩЬ.
HCT Дата: Ср, 28.01.2015, 09:50  |                                                                                                                Сообщение # 108
Группа: Пользователи
Ранг:  Новенький
Сообщений: 10
Репутация: 0   ±
Замечания:   ±
На сайте с 05.10.2014

Статус: Offline

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

Код
Device 16F628A
Xtal 4

'-----------Определение переменных------------------
Dim Evar1 As Byte        'Переменная для хранения текущих значеий номера
Dim Evar2 As Byte        'Переменная для хранения текущих значеий номера
Dim Znak As Byte         'Объявить переменную Znak размером Byte
Dim var1 As Byte         'Переменная для хранения номера от 0
'до 9 для конвертации единиц
Dim var2 As Byte         'Переменная для хранения номера от 0
'до 9 для конвертации десятков
Dim x As Byte            'Общая переменная, перевалочная база
Dim b As Byte            'Переменная для счета циклов

'-----------Переименование выводов------------------
Symbol LED = PORTB.7     'Переименовать PORTB.7 в Led
Symbol Raz_Ed = PORTA.1  'Переименовать PORTA.1 в Raz_Ed (разряд единиц)
Symbol Raz_Des = PORTA.0 'Переименовать PORTA.0 в Raz_Des (разряд десятков)

Symbol PS = PORTA.2      'Переименовать PORTA.2 в PS
Symbol Vybor = PORTA.3   'Переименовать PORTA.3 в Vybor
Symbol UstT = PORTA.4    'Переименовать PORTA.4 в UstT

'-----------Инициализация--------------------
TRISA = %00011100     'Сконфигурировать выводы RB1...RB0 порта РОRТB
'как выходы, а RA2...RA4 как входы
TRISB = %00000000     'Сконфигурировать выводы RB7...RB0 порта РОRТВ
'как выход

'-----------Присвоение значений-------------------
var1 = 0
var2 = 0
x = 0                 '

'-----------Основная программа------------------
Evar1 = ERead 0       'Считать из EEPROM содержимое адреса 0
Evar2 = ERead 1       'Считать из EEPROM содержимое адреса 1

If Evar1 < 10 Then    'Если Evar1 меньше 10 и
If Evar2 < 10 Then    'если Evar2 меньше 10, то
var1 = Evar1          'запишем зти значения в эти переменные
var2 = Evar2          'Если нет, то эти команды не выполняются
EndIf
EndIf

Main:
If PS = 0 Then        'Если нажата кнопка PS, то
EData Evar1, Evar2    'запишем в память текущие значения переменных
DelayMS 10            '
EndIf                 '

For b = 0 To 4 Step 1 'Начало цикла
x = var1              'Запишем в х значение разряда var1
Evar1 = var1          'Запишем значение разряда var1 в Evar1
GoSub convert         'Запишем в порт В цифру через конвертер и
PORTB = Znak          'через вспомогательную переменную Znak
High Raz_Ed           'включим разряд единиц (Raz_Ed)
GoSub Pauza           'выдержим паузу
Low Raz_Ed            'Выключим разряд единиц (Raz_Ed)

x = var2              'Запишем в х значение разряда var2
Evar2 = var2          'Запишем значение разряда var2 в Evar2
GoSub convert         'Запишем в порт В цифру через конвертер и
PORTB = Znak          '
High Raz_Des          'включим разряд десятков (Raz_Des)
GoSub Pauza           'выдержим паузу
Low Raz_Des           'Выключим разряд десятков (Raz_Des)
Next

If UstT = 0 Then      'Если нажата кнопка UstT, то
GoTo UstEd            'перейдем к установке значений единиц
EndIf                 '

GoTo Main             'Переход к началу основной программы, если
'кнопка  не нажата

'-------------Подпрограмма счета--------------------
UstEd:
Inc var1              'увеличиваем значение переменной var1 на 1
If var1 = 10 Then     'Если при этом переменная стала = 10, то
var1 = 0              'обнуляем ее
GoTo UstDes           'и переходим к установке значений десятков
EndIf                 '
GoTo Main             'Возврат на начало основной программы

UstDes:               '
Inc var2              'увеличиваем значение переменной var2 на 1
If var2 = 10 Then     'Если при этом переменная = 10, то
var2 = 0              'обнуляем ее
EndIf                 '
GoTo Main             'Возврат на начало основной программы, если
'кнопка  не нажата

'-------------Подпрограмма конвертирования-----------
convert:
Znak = LookUp x,[$7D, $05, $5B, $4F, $27, $6E, $7E, $45, $7F, $6F]
'7-сегментные коды для отображения чисел
Return         'Возвращаемся к команде, следующей за командой Gosub

'-------------Подпрограмма задержки-------------
Pauza:
DelayMS 30     'Выдержать паузу 30 миллисекунд
Return         'Возвращаемся к команде, следующей за командой Gosub


Смысл, надеюсь, понятен.
xvovanx Дата: Ср, 28.01.2015, 11:24  |                                                                                                                Сообщение # 109
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 249
Репутация: 12   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

В прогу сильно не вникал. А если попробовать вместо EData команду EWrite.
Я всегда использую EWrite, проблемм не было - куда записал, там и считал, по любому адресу.

P.S. в приложении пример из проги запись-считывание
Прикрепления: 5625111.jpg(37Kb) · 6815886.jpg(27Kb)

Сообщение отредактировал xvovanx - Ср, 28.01.2015, 11:52
ADMIN Дата: Ср, 28.01.2015, 12:20  |                                                                                                                Сообщение # 110
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1106
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Разумеется для сохранения в EEPROM нужно использовать команду Ewrite
HCT Дата: Ср, 28.01.2015, 13:34  |                                                                                                                Сообщение # 111
Группа: Пользователи
Ранг:  Новенький
Сообщений: 10
Репутация: 0   ±
Замечания:   ±
На сайте с 05.10.2014

Статус: Offline

Спасибо за советы! Получилось! Я считал, что разница между командами EData и EWrite только в том, что: "При использованиикоманды EData, все указанные значения будут записаны в EEPROM, начиная с нулевого адреса (адреса равного 0).Команда EData не позволит выбрать другой адрес в памяти EEPROM, для записи в нее данных, кроме как нулевой." Это из книги Медведева и Хилинского.
Еще раз спасибо!
С уважением, НСТ.
xaker-sss Дата: Чт, 29.01.2015, 14:50  |                                                                                                                Сообщение # 112
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 198
Репутация: 1   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

EData пишется в шапке программы, что-бы данные записались в EEPROM во время прошивки, пример:
Код
Device 16F628A  
  '----------------------------Предустановки----------------------------------------------------------  
Config  BODEN_OFF, CP_ON, DATA_CP_ON, PWRTE_ON, WDT_OFF, LVP_OFF, MCLRE_OFF, XT_OSC  
  Xtal 4

  '-----------------------------------Конфигурация переменных-----------------------------------------    
  EData 100,600,21
Команда  EData 100,600,21 запишет в EEPROM три переменных 100 600 21, следует учитывать что переменная 600 займет два байта, т.к. больше 255


ПРОТОН ЭТО ВЕЩЬ.
HCT Дата: Чт, 29.01.2015, 16:11  |                                                                                                                Сообщение # 113
Группа: Пользователи
Ранг:  Новенький
Сообщений: 10
Репутация: 0   ±
Замечания:   ±
На сайте с 05.10.2014

Статус: Offline

Спасибо, xaker-sss, за объяснение. Но в книге Медведева и Хилинского приводится пример №3 использования команды EData внутри основной программы. А другой литературы на русском языке по Протону я не знаю. Пока. Может быть кто-нибудь посоветует?
С уважением, НСТ.

Сообщение отредактировал HCT - Чт, 29.01.2015, 16:12
Diaz Дата: Сб, 10.10.2015, 20:38  |                                                                                                                Сообщение # 114
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 32
Репутация: 0   ±
Замечания:   ±
На сайте с 10.08.2015

Статус: Offline

граждане, таки прошу искреннего извинения и проещения за срамную ситуацию. аднака больше срамиться не где)
и так вот прожка:


мк = согласно прожке.
программатор - пиккит 2.
в роде бы всё нормально припаяно и мк определяется и даже прошивается, если верить ПикКиту. однако измерения напряжения показывает, что нихерашчки мк не работает и ничего на выводы не подаёт :"(
и теперь собственно вопрос :
что я сделал не так и что делать теперь ?
ну хотя бы ссылочку sad
Broka Дата: Сб, 10.10.2015, 22:46  |                                                                                                                Сообщение # 115
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Diaz,  Ну может Конфигурацию тоже надо прописать в начале программы?

Наладчик КИП и А
vladh Дата: Вс, 11.10.2015, 07:31  |                                                                                                                Сообщение # 116
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 246
Репутация: 7   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата xaker-sss ()
EData пишется в шапке программы, что-бы данные записались в EEPROM во время прошивки,

Неправда! Зачем дурить человека. Команды можно располагать в любом месте программы. И причем здесь прошивка МК?
Цитата Diaz ()
измерения напряжения показывает, что нихерашчки мк не работает и ничего на выводы не подаёт :"(

А как и чем Вы измеряете напряжение на выходах?
vladh Дата: Вс, 11.10.2015, 20:59  |                                                                                                                Сообщение # 117
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 246
Репутация: 7   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата Diaz ()
только в примерах "PIC Microcontrollers Teach Yourself For Absolute Beginners" оно прям вот так и написано ... или я совсем туплю ?

На мой взгляд это одна из самых слабых книг по работе с ПИК-контроллерами.
Diaz Дата: Вс, 11.10.2015, 21:23  |                                                                                                                Сообщение # 118
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 32
Репутация: 0   ±
Замечания:   ±
На сайте с 10.08.2015

Статус: Offline

Цитата vladh ()
На мой взгляд это одна из самых слабых книг по работе с ПИК-контроллерами.

ок) а ешо есть по протону ? желательно на русском)  творение Хелинского и Медведева уже есть)
ну и по существу : 1) в чём возможна проблема (читайте выше)?
2)возможно ли указать конфигурационное слово в протоне ? если да- то как ???
спасибки за внимание)
Broka Дата: Вс, 11.10.2015, 21:52  |                                                                                                                Сообщение # 119
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 245
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Diaz,  Ну вот под каждый контроллер нужна и своя конфигурация.... потому как  на борту у одного , есть например то , чего нет у другого...  И лучше бы почитать  Даташитик на интересующий Вас  микроконтроллер..... благо они есть и на русском языке.  , а конфигурация записывается примерно вот как то так:
Config  CP_OFF, DEBUG_OFF, WRT_OFF, CPD_OFF, LVP_OFF, BODEN_OFF, PWRTE_ON, WDT_OFF, XT_OSC
Да , чуть не забыл.... обязательно почитай  про команду  Declare (определение, объявление, переопределение)....


Наладчик КИП и А
Сообщение отредактировал Broka - Вс, 11.10.2015, 21:59
vladh Дата: Пн, 12.10.2015, 03:33  |                                                                                                                Сообщение # 120
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 246
Репутация: 7   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

ну и по существу : 1) в чём возможна проблема (читайЯ Вас уже спрашивал. С чего Вы взяли, что у Вас ничего не работает. Чем и как Вы оцениваете работу запрограммированного МК?

Добавлено (12.10.2015, 03:33)
---------------------------------------------

Цитата Diaz ()
ну и по существу : 1) в чём возможна проблема (читайте выше)?

Я Вас уже спрашивал. С чего Вы взяли, что у Вас ничего не работает. Чем и как Вы оцениваете работу запрограммированного МК?
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Помогите разобраться новичку (как правильно?)
Страница 8 из 11«1267891011»
Поиск: