Новый ПРОТОН (3.5.5) - Страница 3 - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 3 из 9«1234589»
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Новый ПРОТОН (3.5.5)
Новый ПРОТОН (3.5.5)
LeXaCH Дата: Пт, 08.02.2013, 12:40  |                                                                                                                Сообщение # 31
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 05.01.2010

Статус: Offline

Спасибо,но мне хватило этих переустановок. Будем думать что невнимательный smile
ЯНДЕКС Дата: 08.02.2013
ivan_fd Дата: Вс, 10.02.2013, 19:38  |                                                                                                                Сообщение # 32
Группа: Модераторы
Ранг:  Специалист
Сообщений: 888
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Потестировал немного новый Протон и удалил (глючный). Или взломан плохо, или такой он есть.

1. Файлы coff работают не корректно.

2. Работа с массивом по индексу неправильная, если индекс типа Word.

Например:

Код
Dim i As Word
Dim tst As Byte
[size=8]Dim Cashe[2] as byte[/size]

begin:
    tst = $7F
    GoSub snt

GoTo begin

snt:
For i = 0 To 1 Then
    tst = ~tst
    Cache [i]= tst
Next    

Return


Если переменная i типа Word то коипилятор генерирует неправильный код процедуры snt.
А если поставить тип Byte, то все нормально.


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Вс, 10.02.2013, 19:40
anatol Дата: Пн, 11.02.2013, 00:35  |                                                                                                                Сообщение # 33
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

ivan_fd,  я что-то не понял.
Код
[size=8]Dim Cashe[2] as byte[/size]
что и как определяешь? Dim Cashe[2] as byte если так то Cashe не равно Cache из выражения, это разные переменные.
В исправленном
Код
Dim i As Word
Dim tst As Byte
Dim Cache[2] As Byte

begin:
     tst = $7F
     GoSub snt

GoTo begin

snt:
For i = 0 To 1 Then
     tst = ~tst
Cache [i]= tst
Next     

Return
так работает

Сообщение отредактировал anatol - Пн, 11.02.2013, 00:55
ivan_fd Дата: Пн, 11.02.2013, 13:34  |                                                                                                                Сообщение # 34
Группа: Модераторы
Ранг:  Специалист
Сообщений: 888
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Dim Cashe[2] as byte - это так движок форума подсовывает у меня.
Цитата (anatol)
что и как определяешь? Dim Cashe[2] as byte если так то Cashe не равно Cache из выражения, это разные переменные. В исправленном
Опечатка!!!!

Цитата (anatol)
так работает
 Вы написали так же как и я (просто опечатка), не работает!!!!
Я описал в чем проблема. ASM код сгенерирован компилятором не правильный, в версии 3.5.2.7 генерит все нормально.


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Пн, 11.02.2013, 13:39
anatol Дата: Пн, 11.02.2013, 14:35  |                                                                                                                Сообщение # 35
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

ivan_fd,  я бросил этот кусок кода в проект по умолчанию на 628 пике. Зарезервировано две ячейки памяти под переменную sad
Посмотри сам. При установке тонкость с удалением полностью предыдущих версий, особенно папок PDS в программных файлах и документах
Прикрепления: 6893031.rar(6Kb)
ivan_fd Дата: Пн, 11.02.2013, 15:12  |                                                                                                                Сообщение # 36
Группа: Модераторы
Ранг:  Специалист
Сообщений: 888
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Ячейки и у меня 2 зарезервировано. Проблема не в этом.
Цитата (ivan_fd)
коипилятор генерирует неправильный код процедуры snt.

Если работать с доступом по индексу к элементам массива и переменная i типа word, то не работает.

Вот кусок АСМа не рабочего: этоВаш файл, он тоже не работает.

Код
F1_000024 equ $ ; IN [UN.BAS] CACHE [I]= TST
       movwf PP0H
       movf _I,W
       addlw 16
       movwf FSR
       movf PP0H,W
       movwf INDF

А если переменная i типа Byte, то работает.

Код
F1_000024 equ $ ; IN [UN.BAS] CACHE [I]= TST
           movf _I,W
           addlw 16
           movwf FSR
           movf tst,W
           movwf INDF

Видите разницу???  То есть он в массив записывает не те значения.


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Пн, 11.02.2013, 15:25
anatol Дата: Вт, 12.02.2013, 14:59  |                                                                                                                Сообщение # 37
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

ivan_fd, Вчера "изучал" ассемблер. Может ошибаюсь, но на бумаге цикл проходит и записи правильные.
В протеусе пошагово не пробовал - позже может быть.
Надо пирог рыбный попытаться сделать. wink Новое увлечение.
ivan_fd Дата: Вт, 12.02.2013, 18:28  |                                                                                                                Сообщение # 38
Группа: Модераторы
Ранг:  Специалист
Сообщений: 888
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Нет, на бумаге тоже не правильно.

Он пишет с регистра PP0H в регистр INDF (косвенная адресация).
 А должен писать с регистра tst.


Меня все время преследуют умные мысли...но я быстрее!!!
anatol Дата: Вт, 12.02.2013, 19:02  |                                                                                                                Сообщение # 39
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

ivan_fd, Тупо взял другой пример и перемонтировал.
Прикрепления: add_v.rar(52Kb)
ivan_fd Дата: Вт, 12.02.2013, 21:08  |                                                                                                                Сообщение # 40
Группа: Модераторы
Ранг:  Специалист
Сообщений: 888
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

А вот здесь все нормально. И по АСМу видно, что ОК.

Но это 18F, а у меня были 16F. Причем разные брал.


Меня все время преследуют умные мысли...но я быстрее!!!
anatol Дата: Вт, 12.02.2013, 21:45  |                                                                                                                Сообщение # 41
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 547
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

ivan_fd, это я взял готовый пример и переделал. Просто самому все рисовать в протеусе  влом. Но и напороться с обновлениями на капкан не хочется. Кстати обновления довольно серьезные. То что раньше проскакивало - теперь вигвам. При переделке программы указал процессор (был указан) так тормознула и сказала нафига два одинаковых проца. wacko Может завтра поэкспериментирую еще. И лом-алки в 1 и 18 сообщениях разные по длине и по отображению в справке.
ivan_fd Дата: Вт, 12.02.2013, 23:35  |                                                                                                                Сообщение # 42
Группа: Модераторы
Ранг:  Специалист
Сообщений: 888
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

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

Хотя, если разобратся, для индекса в 16F и не нужен тип word. Может потому ?????

Даже COFF работает не корректно. Но это тоже на 16F, на других не проверял.


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Вт, 12.02.2013, 23:38
mikhail09p Дата: Ср, 13.02.2013, 14:54  |                                                                                                                Сообщение # 43
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 504
Репутация: 10   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Я пока глюков не заметил, всё работает. С COFF.
ivan_fd Дата: Ср, 13.02.2013, 18:00  |                                                                                                                Сообщение # 44
Группа: Модераторы
Ранг:  Специалист
Сообщений: 888
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Что бы не быть голословным, посмотрите этот тестовый пример.

Увидите, что творится при использовании coff, а потом поставьте bas и сравните.
Прикрепления: TestLCD.zip(68Kb)


Меня все время преследуют умные мысли...но я быстрее!!!
mikhail09p Дата: Ср, 13.02.2013, 18:53  |                                                                                                                Сообщение # 45
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 504
Репутация: 10   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Добавьте, пожалуйста, модельку 3310 для Протеуса, у меня нету...
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Новый ПРОТОН (3.5.5)
Страница 3 из 9«1234589»
Поиск: