Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Протон 3.5.Х.Х (грабли)
Протон 3.5.Х.Х
anatol Дата: Сб, 21.09.2013, 14:07  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Сила инерции и нежелание читать хелпы на новые версии приводит. иногда, к непредсказуемым последствиям.
Вот и у меня. Не компилируются (так чтоб работали) старые программы созданные в версии 3.2.х.х Причем одна выложена здесь на сайте.
Решил разобраться. Благо она маленькая. При прогоне в симуляторе увиидел что формируется неправильно одна переменная. Оказывается изменен синтаксис команды Dig
Старая версия
Код
NUM[LEDS]=REZULTAT Dig LEDS
новая версия
Код
NUM[LEDS]=Dig REZULTAT,LEDS

И все работает. Код также на 2 слова меньше.

Короче - читаем МУ-МУ поставляемую с программой.
ЯНДЕКС Дата: 21.09.2013
mikhail09p Дата: Сб, 21.09.2013, 21:59  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Наступал на эти грабли!  smile
terrarus Дата: Ср, 25.09.2013, 14:25  |                                                                                                                Сообщение # 3
Группа: Пользователи
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 17   ±
Замечания:   ±
На сайте с 21.08.2008

Статус: Offline

Подскажите пожалуйста, сейчас у кого из дилеров в России или в Украине или Беларусии можно купить перечислением официальные версии
Protona и Proteusa? Кто нибудь покупал?


Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
Сообщение отредактировал terrarus - Ср, 25.09.2013, 14:26
Gipopotam Дата: Пт, 27.09.2013, 01:04  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 26.09.2013

Статус: Offline

Здравствуйте!
Взял на этом форуме исходник вольтметра, но он у меня не компилится в Протоне 3.5.5.6.
Видимо написан в более ранней версии Протона. Я в этом деле новичек, скачиваю разные примеры для усваяемости информации. Подскажите в чем проблемма?

'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright © 2013 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 10.09.2013 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device =16F873A
Xtal=4
Declare Adin_Res = 12
Declare adin_tag = FRC
Declare Adin_Stime = 50

Declare LCD_Type ALPHA
Declare LCD_DTPin PORTB.4
Declare LCD_ENPin PORTB.3
Declare LCD_RSPin PORTB.2
Declare LCD_Interface 4
Declare LCD_CommandUs 2000
Declare LCD_DataUs 50
Declare LCD_Lines 4

Declare PortB_Pullups = OFF
Declare All_Digital = OFF
TRISA = %00000111
ADCON1 = %11000000

Dim var1 As Word
Dim var2 As Word
Dim var3 As Word

' ** Declare Variables **
Dim Bar_Val As Byte ' Value to be graphed.
Dim Bars As Byte ' Number of full ||| bars to draw.
Dim Balance As Byte ' Balance left after all |||s are drawn.
Dim Balf As Byte ' Is a 'Balance' character needed? (1=yes, 0=no).

' ** Declare Constants **
Symbol B_Wdth = 12 ' Max width in characters of bar.
Symbol MaxBar = B_Wdth * 3 ' Max bar counts.
Symbol FullBar = 3 ' ASCII value of ||| bar.
Symbol BaseBar = 0 ' ASCII value of 0 bar (blank).
Symbol CGRAM = 64
'-------------------------------------------------------------------------------

Again:
var1 = ADIn 0
var2 = ADIn 1
var3 = ADIn 2

Print At 1,13, Dec2 var1/204.6
Print At 2,13, Dec2 var2/204.6
Print At 3,1, Dec1 var3/42.625
Print $FE,CGRAM,Rep $0\8,$0,Rep $10\6,$0,$0,Rep $14\6,$0,$0,Rep $15\6
GoTo Over_Bargraph

'GoTo BarGraph

BarGraph:
Declare Warnings = Off
Declare Byte_Math = On
Bars = (Bar_Val Min MaxBar) /3 ' One full bar for each 3 graph units.
Balance = (Bar_Val Min MaxBar) //3 ' Balance is the remainder after a division by 3.
Balf = Balance Min 1
Print At 1,1,Rep FullBar\Bars,Rep (Balance + BaseBar)\Balf,Rep " " \B_Wdth - (Bars + Balf)
' Display the decimal value of BAR_VAL
Return
Declare Byte_Math = Off
Declare Warnings = On
'-------------------------------------------------------------------------------
' Demonstration routine
Over_Bargraph:
Bar_Val = var1/31
GoSub BarGraph

GoTo Again

Сообщение отредактировал Gipopotam - Пт, 27.09.2013, 01:04
ADMIN Дата: Пт, 27.09.2013, 07:28  |                                                                                                                Сообщение # 5
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Какую ошибку пишет?
Gipopotam Дата: Пт, 27.09.2013, 11:49  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 26.09.2013

Статус: Offline

Цитата (ADMIN)
Какую ошибку пишет?


В версии 3.5.5.6 четыре ошибки:


А вот в версии 3.5.2.6, Hex компилируется нормально, но пишет какие-то два сообщения:
Прикрепления: 4735562.jpg (17.5 Kb) · 2783128.jpg (9.2 Kb)

Сообщение отредактировал Gipopotam - Пт, 27.09.2013, 11:56
anatol Дата: Пт, 27.09.2013, 13:22  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

С первой ошибкой просто. Правильно будет Declare Adin_Tad = FRC .Сравните буковки. И вообще посмотрите по адресу help - documents - Proton compiler manual . найдите строку Adin.
Кстати Declare Adin_Res = 12 - какая разрешающая способность АЦП Device =16F873A по документации. Мне кажется что только ADC5 ch, 10-bit. И время преобразование надо посмотреть, иначе сбои будут.

Добавлено (27.09.2013, 13:22)
---------------------------------------------
Кстати за основу была взята программа из примеров в Документы и настройки - пользователь - PDS -Samples - BarGraph.bas
На всякий случай приведу
Код
'
'*************************************************************************************************************
'* This source code is provided 'as is' and any express or implied warranties, including,                    *
'* but not limited to, the implied warranties of merchantability and fitness for a particular                *
'* purpose are disclaimed.                    *
'*                    *
'* In no event shall the author, Crownhill or contributers be liable for any direct, indirect, incidental,   *
'* special, exemplary, or consequential damages (including, but not limited to,  procurement of substitute   *
'* goods or services; loss of use, data, or profits;  or business interruption) however caused and on any    *
'* theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise)   *
'* arising in any way out of the use of this source code, even if advised of the possibility of such damage. *
'*                    *
'* Any views and conclusions contained in the source code and any documentation are those of the author's    *
'* and should not be interpreted as representing official policies,                    *
'* either expressed or implied, of Crownhill Associates Ltd.                    *
'*************************************************************************************************************
'
' Program BARGRAF2.BAS
' This program generates a horizontal bargraph
' with a 2x16 Intelligent LCD Display.

      Include "Proton_4.Inc"

' ** Declare Variables **
      Dim Bar_Val As Byte                 ' Value to be graphed.
      Dim Bars As Byte                 ' Number of full ||| bars to draw.
      Dim Balance As Byte                 ' Balance left after all |||s are drawn.
      Dim Balf As Byte                 ' Is a 'Balance' character needed? (1=yes, 0=no).

' ** Declare Constants **
      Symbol B_Wdth = 16                  ' Max width in characters of bar.
      Symbol MaxBar = B_Wdth * 3          ' Max bar counts.
      Symbol FullBar = 3                  ' ASCII value of ||| bar.
      Symbol BaseBar = 0                  ' ASCII value of 0 bar (blank).
      Symbol CGRAM = 64
'-------------------------------------------------------------------------------

      DelayMS 100
      Cls
' Create the bit patterns that make up the bars in the LCD's CGRAM.
' The vertical bars are made up of 8 identical bit patterns
' A | bar consists of 5 times %10000,
' A || bar consists of 5 times %10100
' A ||| bar consists of 5 times %10101

      Print $FE,CGRAM,Rep $0\8,$0,Rep $10\6,$0,$0,Rep $14\6,$0,$0,Rep $15\6
      GoTo Over_Bargraph                    ' Jump over the subroutine
'-------------------------------------------------------------------------------
' The value in 'Bar_Val' is displayed as a horizontal bar graph
' from the current cursor location with a total width (in characters) set by the B_WDTH constant.
' Each character position can represent a maximum value of 3 using the Fullbar character |||.
' The routine calculates how many full bars to use by dividing by 3.
' If there is a remainder after dividing by 3, the routine joins on a partial-bar character
' ( | or ||) to represent the balance.
' Then it pads out the remainder of the bar width with spaces to erase any leftover bars
BarGraph:
      If Bar_Val > MaxBar Then Return             ' Check boundaries
      Bars = Bar_Val / 3                          ' One full bar for each 3 graph units.
      Balance = Bar_Val // 3                      ' Balance is the remainder after a division by 3.
      If Balance > 1 Then Balance = 1
      Balf = Balance
      Print At 1,1,Rep FullBar\Bars,Rep (Balance + BaseBar)\Balf,Rep " " \B_Wdth - (Bars + Balf)
      Print At 2,1,Dec Bar_Val,"  "               ' Display the decimal value of BAR_VAL
      Return
'-------------------------------------------------------------------------------
' Demonstration routine
Over_Bargraph:
      For Bar_Val = 0 To 40
          GoSub BarGraph
          DelayMS 100
      Next
      For Bar_Val = 40 To 0 Step -1
          GoSub BarGraph
          DelayMS 100
      Next
      GoTo Over_Bargraph
Благополучно изуродована.

Сообщение отредактировал anatol - Пт, 27.09.2013, 13:24
anatol Дата: Ср, 16.10.2013, 01:50  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Продолжим. Еще не тестил. Лесс выложил обновление http://www.compile-it.com/pdsbeta.....8.exe 
Переводить не буду
Прикрепления: 7618071.zip (320.3 Kb)
vladh Дата: Ср, 16.10.2013, 06:48  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Всем доброго времени дня. Хотел бы высказать свое мнение по поводу "Протона". До недавнего времени я был большим приверженцем этого компилятора. Все предыдущие обновления этого компилятора позволяли работать со старыми разработками. Но после того как в последних новых его версиях перестали поддерживаться старые разработки мне это сильно перестало нравиться. И теперь мне видится разумный переход на mikroBasic. В чем я вижу преимущества этой среды программирования. В первую очередь это практически одна и та же среда для разных МК (PIC, dsPIC, AVR, ARM). Во вторую очередь это большой набор подпрограмм работы с периферией. Очень бы хотелось услышать Ваши мнения по этой проблеме.
Matrix252005 Дата: Ср, 16.10.2013, 08:52  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!!

vladh, mikroBasic это хорошо!!! Я сам на него "подсел"  biggrin Очень много возможностей, НО.... Библиотеки у него закрытые, не совсем пока понятна настройка МК!!! Что не есть хорошо...

Я пробовал написать программу для управления экраном LS022 на протоне, но после написания нескольких подпрограмм бросил это дело и написал на "мВ for PIC". Хорошо что можно отлаживать софт в протеусе... С СТМ намного все хуже.... Только в железе...  sad

Так что, если Вы хотите "пообщаться" об "мВ", то есть отдельная ветка на форуме...

Я думаю многим будет интересно....


THE TRUTH IS OUT THERE.

С уважением, Николай.
vladh Дата: Ср, 16.10.2013, 09:18  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Matrix252005, спасибо за ответ. Я только не понял Ваши слова о СТМ? В среде "мВ" компилятора на эти МК нет поэтому непонятно причем здесь они? И потом, непонятно, что Вы подразумеваете под словами: "..непонятна настройка МК"?
Сообщение отредактировал vladh - Ср, 16.10.2013, 09:21
ЯНДЕКС Дата: 16.10.2013
Matrix252005 Дата: Ср, 16.10.2013, 09:32  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Цитата vladh ()
В среде "мВ" компилятора на эти МК нет...

Вообще то есть: http://www.mikroe.com/mikrobasic/arm/
И я уже относительно давно им пользуюсь... Сейчас буду пробовать работать с STM32F050...

А по поводу настройки, в протоне можно написать Config ... или Config_Start или вообще ничего не указывать и компилятор сам все "поймет"...
В мВ немного сложнее... Я пытался настроить 452 PIC, у меня не получилось, хотя в протоне все норм заработал... Пришлось брать другой МК (4520)...

Настройка портов там не очень...

Так что, если хотите об этом поговорить, то давайте не будем засорять эту ветку и перейдем в соответствующую ветку...


THE TRUTH IS OUT THERE.

С уважением, Николай.
vladh Дата: Ср, 16.10.2013, 09:47  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата Matrix252005 ()
Вообще то есть: http://www.mikroe.com/mikrobasic/arm/
Простите, я действительно это как то забыл. Хорошо. Может быть тогда уж лучше перейти в "личку"? Я Вам отправил своё "мыло" в личном сообщении.
ivan_fd Дата: Ср, 16.10.2013, 22:38  |                                                                                                                Сообщение # 14
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

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

Цитата vladh ()
Но после того как в последних новых его версиях перестали поддерживаться старые разработки мне это сильно перестало нравиться.

Не так уж и много там изменилось и не в худшую сторону (почти wink ).

К стати, а где Вы нашли обновление, на сайте не вижу его?

Сообщение отредактировал ivan_fd - Ср, 16.10.2013, 22:40
vladh Дата: Чт, 17.10.2013, 05:31  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 258
Репутация: 11   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Цитата ivan_fd13177
Кстати, а где Вы нашли обновление, на сайте не вижу его?

Обновление лежит на форуме:  http://www.protonbasic.co.uk/forumdi....iler-v3
Да, изменения не сильные но вполне достаточные для того чтобы потратить день, а то и два время на правку старых программ. Это первое. А второе это то, что мы с Вами уже обсуждали. По поводу 14 разрядных МК. Там не всегда проходят переменные типа word их надо менять на byte. Согласитесь, что это очень мешает. По поводу размера и скорости работы программ. Разговоры об этом ведутся давно и на разных площадках и нигде нет объективного результата. Вот если писать на асме то там все однозначно и код будет меньше и скорость больше. Но сколько времени Вы будете тратить на такую(подчас простую) работу. Учитывая широкую номенклатуру современных МК есть чем скомпенсировать недостатки объемов памяти и тактовой частоты. Зато Вы сможете быстро "сделать дело и гулять смело". Разве не так?

Сообщение отредактировал vladh - Чт, 17.10.2013, 05:35
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Протон 3.5.Х.Х (грабли)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: