реклама на сайте
подробности

 
 
> мплаб и пик
Евгений Германов...
сообщение Jul 18 2008, 13:48
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Столкнулся с весьма забавным явлением.

фрагмент программы

MOVF PCL,W,ACCESS ;загрузка pclatu,pclath
MOVLW 2

ADDWF PCL,F,ACCESS

RETLW 0x3f ;0
RETLW 0x06 ;1
RETLW 0x5b ;2
RETLW 0x4f ;3

И ТОЖЕ САМОЕ но
MOVF PCL,F,ACCESS

в мплабе оба варианта прекрасно работают,но на реальном железе PIC18F452 вариант с буквой F не работает 05.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Евгений Германов...
сообщение Jul 23 2008, 16:17
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



movlw HIGH table
movwf PCLATH ;msb of table
Зачем эти строки??????
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 23 2008, 16:39
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Похоже, здесь собака зарыта. Завтра проверю. Где ваш код?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Jul 24 2008, 12:56
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Цитата(=GM= @ Jul 23 2008, 19:39) *
Похоже, здесь собака зарыта. Завтра проверю. Где ваш код?

Нет не здесь.
Я пргнал ваш текст,все прекрасно и с W и F однако я не останрвился на этом и продолжил.

org 0x0100
test
call german
bra test


ORG 600H
german

movf PCL,f,ACCESS;table address и тоже самое но с W!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
movlw 2
addwf PCL,f,ACCESS
table
retlw 0x3f
retlw 0x06
retlw 0x5b
retlw 0x4f
и всё враз стало нехорошо.
Если у вас не получится придется использовать мой текст.
Но если я не ошибся это не мелкий недочет мплаба,а очередной глюк контроллера. smile.gif
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 24 2008, 14:20
Сообщение #5


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Евгений Германович @ Jul 24 2008, 11:56) *
Но если я не ошибся это не мелкий недочет мплаба,а очередной глюк контроллера.


Ваш код работает в железе с W, и не работает с F. Похоже, это глюк разработчика (:-). Судите сами, переход осуществляется на адрес 0х0008 сразу после выполнения команды movf PCL,f,ACCESS. Вы неправомочно используете movf PCL,f,ACCESS, поскольку регистр PCL несколько раз модифицируется в теле самой команды за время выполнения этой команды, и контроллеру не понятно, какую модификацию загружать в PCL(:-).

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


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Jul 24 2008, 15:10
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Цитата(=GM= @ Jul 24 2008, 17:20) *
Ваш код работает в железе с W, и не работает с F. Похоже, это глюк разработчика (:-). Судите сами, переход осуществляется на адрес 0х0008 сразу после выполнения команды movf PCL,f,ACCESS. Вы неправомочно используете movf PCL,f,ACCESS, поскольку регистр PCL несколько раз модифицируется в теле самой команды за время выполнения этой команды, и контроллеру не понятно, какую модификацию загружать в PCL(:-).

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

По поводу неправомочности я с вами полностью согласен,однако вызывает недоумение следующий момент и не один:
1 в мплабе всё прекрасно,что очень плохо и ,что является явным глюком
2 при некоторых условиях все работает,а это ещё хуже,чем если бы всё не работало.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 24 2008, 15:41
Сообщение #7


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Евгений Германович @ Jul 24 2008, 14:10) *
По поводу неправомочности я с вами полностью согласен, однако вызывает недоумение следующий момент и не один:
1 в мплабе всё прекрасно, что очень плохо и что является явным глюком
2 при некоторых условиях все работает.

Одно я знаю, а ещё при каких условиях работает?

Вот здесь Вычисляемый GOTO на pic18f45j10 есть пара вариантов, как помочь горю.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Jul 24 2008, 16:17
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Цитата(=GM= @ Jul 24 2008, 18:41) *
Одно я знаю, а ещё при каких условиях работает?

Вот здесь Вычисляемый GOTO на pic18f45j10 есть пара вариантов, как помочь горю.

Я тоже одно и второе искать не хочу,из за этих 2 глюков я несколько раз проиграл в шашки. и потратил много времени на поиск.Однако,согласитесь,что выражение MOVF PCL,F,ACCESS весьма изящно но не работает biggrin.gif

movff PCL,любой свободный регистр; и вот оно счастье smile.gif
так ещё компактнее и безопасно.
И всеPCLAT ЗАГРУЖЕНЫ

ADDWF WREG,W,ACCESS ; W*2
так удваивать W компактнее
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 24 2008, 21:45
Сообщение #9


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Евгений Германович @ Jul 24 2008, 15:17) *
Я тоже одно и второе искать не хочу, из за этих 2 глюков я несколько раз проиграл в шашки и потратил много времени на поиск. Однако, согласитесь, что выражение MOVF PCL,F,ACCESS весьма изящно, но не работает

проиграли вы потому, что противник был сильнее, а глюк был ваш собственный, не нужно было модифицировать PCL, это закон. Изящество было бы, если бы работало.
Цитата(Евгений Германович @ Jul 24 2008, 15:17) *
movff PCL,любой свободный регистр; и вот оно счастье

Германыч, это куда надо прикладывать? Вы б сразу писали поконкретнее, а то возникают непонятки и приходится переспрашивать.
Цитата(Евгений Германович @ Jul 24 2008, 15:17) *
ADDWF WREG,W,ACCESS ; W*2 так удваивать W компактнее

Не пойму, зачем вы тут про удвоение говорите, куда с ним?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Евгений Германов...
сообщение Jul 25 2008, 13:29
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 24-06-07
Из: г.Екатеринбург
Пользователь №: 28 654



Цитата(=GM= @ Jul 25 2008, 00:45) *
проиграли вы потому, что противник был сильнее, а глюк был ваш собственный, не нужно было модифицировать PCL, это закон. Изящество было бы, если бы работало.

Германыч, это куда надо прикладывать? Вы б сразу писали поконкретнее, а то возникают непонятки и приходится переспрашивать.

Не пойму, зачем вы тут про удвоение говорите, куда с ним?

Но сегодня я выиграл и с разгромным счетом 6:0.Глюк не мой -Если предоставляется возможность творить подобную команду то надо и контролировать её.А мплаб молчал.
Про приложение


ADDWF WREG,W,ACCESS ; W*2 именно сюда
MOVFF PCL,любой свободный регистр
ADDWF PCL,F,ACCESS




RETLW 0x3f ;0
RETLW 0x06 ;1

или
BRA ......
BRA .......
так компактнее



это по результатам просмотра вашей ссылки.


movlw HIGH table
movwf PCLATH ;msb of table
это ваш код.Вопрос а как быть с PCLATU вы его не грузите???
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Евгений Германович   мплаб и пик   Jul 18 2008, 13:48
- - vanner   Ничего забавного в этом явлении нет, такой вычисля...   Jul 21 2008, 06:08
- - =GM=   Цитата(Евгений Германович @ Jul 18 2008, 12...   Jul 21 2008, 11:01
|- - Евгений Германович   Цитата(=GM= @ Jul 21 2008, 14:01) Первая ...   Jul 21 2008, 12:33
|- - =GM=   Ещё раз, фрагмент работает, а первая строчка вашег...   Jul 21 2008, 13:27
|- - Евгений Германович   Цитата(=GM= @ Jul 21 2008, 16:27) Ещё раз...   Jul 21 2008, 14:21
|- - =GM=   Проверил все варианты: 0, 2, 4 и 6, полёт нормальн...   Jul 21 2008, 14:27
|- - Евгений Германович   Цитата(=GM= @ Jul 21 2008, 17:27) Провери...   Jul 21 2008, 15:10
|- - =GM=   pic18f45k20 штатная плата, pic18LF45j10 в макете и...   Jul 21 2008, 15:38
- - Евгений Германович   Здравствуйте.П 4.4 гласит "значение регистров...   Jul 22 2008, 12:12
|- - =GM=   Прошу пардону, я был неправ, на моём проце всё име...   Jul 22 2008, 14:55
|- - Евгений Германович   Цитата(=GM= @ Jul 22 2008, 17:55) Прошу п...   Jul 22 2008, 15:50
|- - =GM=   Цитата(Евгений Германович @ Jul 22 2008, 14...   Jul 23 2008, 10:01
|- - Евгений Германович   Цитата(=GM= @ Jul 23 2008, 13:01) Отличия...   Jul 23 2008, 12:41
|- - =GM=   Цитата(Евгений Германович @ Jul 23 2008, 11...   Jul 23 2008, 15:17
- - =GM=   Цитата(Евгений Германович @ Jul 25 2008, 12...   Jul 25 2008, 14:54
- - Евгений Германович   Цитата(=GM= @ Jul 25 2008, 17:54) Таких т...   Jul 25 2008, 16:00
- - =GM=   Цитата(Евгений Германович @ Jul 25 2008, 15...   Jul 25 2008, 23:21
- - Евгений Германович   Цитата(=GM= @ Jul 26 2008, 02:21) Не, вы ...   Jul 26 2008, 07:45
- - =GM=   Евгений Германович А зачем сначала класть в рег k,...   Jul 28 2008, 08:42
- - Евгений Германович   Цитата(=GM= @ Jul 28 2008, 11:42) Евгений...   Jul 28 2008, 10:30
- - =GM=   Цитата(Евгений Германович @ Jul 28 2008, 09...   Jul 28 2008, 11:16
- - Евгений Германович   Цитата(=GM= @ Jul 28 2008, 14:16) Ага, то...   Jul 28 2008, 11:40
- - =GM=   Цитата(Евгений Германович @ Jul 28 2008, 10...   Jul 28 2008, 14:52


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01543 секунд с 7
ELECTRONIX ©2004-2016