| Автор |
Съобщение |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Device = 16F628A ' This will be ignored once inside MPLAB
OPTIMISER_LEVEL = 6
HSERIAL_BAUD = 9600 ' Set baud rate to 9600
HSERIAL_RCSTA = %10010000 ' Enable serial port and continuous receive
HSERIAL_TXSTA = %00100000 ' Enable transmit and asynchronous mode
HSERIAL_CLEAR = On ' Optionally clear the buffer before receiving
Declare HSERIAL_PARITY = ODD
Dim F1 As Float
Dim F2 As Float
Dim F3 As Float
While 1 = 1 ' Create an infinite loop
F1 = 3.14
F2 = 6.28
F3 = F1*F2
Wend ' Do it
HRSOut F3
Ами гледам ама на мене ми дава друго
198 команди
и 33 променливи
За това си мисля че правим различни неща
|
| Вто Май 30, 2006 7:37 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Ами Цецо наистина изхвърлянето на безмислени части от кода са глупости.
Използването на общи части от различни сорс фаилове при компилацията им заедно също и всекакви трикове които правят компилаторите за нас са глупсти също.
Съгласен съм 
|
| Вто Май 30, 2006 7:44 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Прати го на PORTB тогава стават 307 байтовете.
|
| Вто Май 30, 2006 7:52 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
SEGMENT SPACE START ADDRESS END ADDRESS SIZE TYPE ALIGN
======= ===== ============= =========== ==== ==== =====
INTVEC CODE 0000 - 0001 2 com 1
RCODE CODE 0002 rel 1
<CODE> 1 CODE 0002 - 0003 2 rel 1
SCODE CODE 0014 - 0015 2 rel 1
****************************************
* *
* END OF CROSS REFERENCE *
* *
****************************************
139 bytes of CODE memory
39 bytes of DATA memory
Errors: none
Warnings: none
за IAR
|
| Вто Май 30, 2006 7:52 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Какво пак съм изръсил 
|
| Вто Май 30, 2006 7:54 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
За кое?
|
| Вто Май 30, 2006 7:58 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Да пращаме плаваща запетая на порта не е много коректно.
Може да се направи по много начини и се получават различни резултати (много различни)
По добре като мене го пращай по RS-a .
Както съм го направил на горния пример
|
| Вто Май 30, 2006 8:33 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Ти си го изтрил - кво са правиш  .
Ами то трябва да е все тая дали ще го запишеш в регистъра на порта, или в регистъра на серийния интерфейс. Или ще си избираме само тоя код дето бейсика го "оптимизира" по-добре 
|
| Вто Май 30, 2006 8:41 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Порта е 8 бита.
А Плаващата запетая с нейнети ехпонента и мантиси.
Не е ясно кой компилатор какво праща на порта.
Затова предложих серина комуникация.
Нали целта беше резултата да се ползва.
|
| Вто Май 30, 2006 8:50 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Димитъре сега се сетих то беше за по малко от минута. Бях натиснал Quote на нпредишната си тема и после се отказах и не бях изттрил всичко. Сорри. Кога пък свари да го прочетеш
аз съвсем коректно съм предал в моята компилация 4 рите баита на float-a.
char * fP = (char *) (&F3);
SerialSent(fP); fP++;
SerialSent(fP); fP++;
SerialSent(fP); fP++;
SerialSent(fP);
и така на високо ниво на оптимизация ми излязоха 139 баита.
ама в Protona надали
HRSOut F3 прави това виж какво ти излиза на порта

|
| Вто Май 30, 2006 9:10 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Регистъра на порта, както и регистъра на серийния канал са все 8 бита и са на едно и също място - т.е. от гледна точка на компилатора е без значение дали ще записваш резултата в PORTB или в ТXREG. А това, че пращам там само един байт от float-а вместо целия едва ли оказва някакво значение.
Последна промяна Dimitar на Вто Май 30, 2006 9:19 pm, променена общо 1 път
|
| Вто Май 30, 2006 9:17 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
|
| Вто Май 30, 2006 9:18 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
И стига си пробвал да си мериш пишката. Пиша по тая тема само за да не си мислят начинаещите че може да се работи професионално с такива изгъзици като протона.
А ако имаше малко акоъл в главата щеше да се сетип че кода генериран за такива малки фрагменти не е показателен.
Показателно е кога се компилира нещо голямо с 1000-2000 реда код поне.
Като си направи IAR-a опримизацията на ниво цял проект в сравнение с протона ще отиде на наполовина по малко код най вероятно. А да не забравяме с тоя синтаксис на беисика как неприятно се правят алгоритми и по сложни изгъзици.
Явно се мъчиш да се оправдаеш за пред себе си че не можеш да се оправиш с C-to и затова все налиташ да разправяш колко добър бил тоя протон.
Спри да се излагаш
|
| Вто Май 30, 2006 9:19 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
ами няколко баита повече са. Но протона да не мислиш че праща повече от един байт. И аз се усетих че така ще ми излезе по дълъг кода и сравнението няма да е коректно щях да преправям,ама като видях че пак е по напред се отказах 
|
| Вто Май 30, 2006 9:23 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Аз това имах предвид де. Щото знам как оптимизира IAR-а за RISK процесори проекти със по 20-25000 реда код и как след това като погледна листинга на асемблер и няма къде да се захвана една инструкция да сменя. Та затова ми беше чудно в началото аджеба тоя протон какво и как оптимизира та да ги прави тея фокуси. Ама явно е ала-бала. То не случайно едно време бейсика беше език за децата (и още е де)  . Но въпреки всичко най-големия проблем според мен е преносимостта на кода и чак след това идва колко оптимален е той. Щото е супер безмисленно да си направиш една камара библиотеки на бейсик за пикове и после като ти трябва да пишеш за някой друг процесор да трябва да си ги правиш и начекваш библиотеките наново. Когато се заниваш на ниво хоби - това няма значение, но ако си вадиш хляба с това - вече времето е от огромно значение. Спора е на същата основа както и PIC vs. Другите чипове - просто каквито и да са другите качества - най-важното е времето до реализацията - нищо друго. Поне на мен приоритетите ми бяха (и сега в някой случай са  ) такива.
|
| Вто Май 30, 2006 9:27 pm |
|
|