|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 9:51 pm
| Автор |
Съобщение |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Само кажи за какво LCD го правим и след малко го имаме и на Proteus, голям съм навитак да си изгубя следващите 10 минути за да спрете да остроумничите с тия Pascal и Basic (не че и аз не пиша на Delphi)  Който падне - каса бира, ама понеже е зима ще мине номера и с греяно вино 
|
| Пет Яну 20, 2006 12:41 am |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Device = 16F877
XTAL = 4 кварца е 4 мх
LCD_DTPIN = PORTD.4
LCD_RSPIN = PORTE.0
LCD_ENPIN = PORTE.1
LCD_INTERFACE = 4 ' 4-bit Interface
LCD_LINES = 2 двуредов
LCD_TYPE = 0 не графичен
|
| Пет Яну 20, 2006 12:57 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Сега ще ме караш да дописвам LCD.h файла щото е мазан на C и не е подреден...
ROM used: 512 words (6%) Largest free fragment is 2048 RAM used: 15 (9%) at main() level // 9% от първа банка  Stack: 5 worst case (4 in main + 1 for interrupts)
|
| Пет Яну 20, 2006 2:49 am |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Абе защо му се връзваш на Румен.
Тоя размер на кода дето го е дал че е 381 думи е нереален за тази програма. Особенно пък на Беисик. Предполагам че нещо не е доразбрал за кое се отнася това. Или някаква друга подробност има дето се изплъзва. Тои още малко ще изкара че е ефективен като асемблера
Ами общи линии за коректно написана бибиотека за LCD-то отива към 250-300 баита. Нещо не е както тябва.
Ама то да тръгнеш да сравняваш C с Беисик то смешна работа. Всички сме почнали нявга с правеца и беисика и си го знаем що за тромаво чудо е и колко е трудно да се изрази някои малко по сложен алгоритъм. По моя преценка за такава тъпотия като тоя волтметър би трябвало C и Беисик да дадат приблизително еднакъв по големина код ако се спазва точно един алгоритъм. Просто е тъп линеен код дето няма много възможности да се оптимизира. Но сложи му един реален проект с ползване на няколко прекъсвания,накакъв протокол за обмен по серииния порт с корекция на грешките,променливи в еепрома, и 2-3 задачи дето да ти се изпъляват паралелно което е съвсем нормално в един реален проект ,ами Руменчо тогава едно че ще ти се отели вола да го напишеш на беисик ами и ще стигнеш сигурно до над 30 процента по голям и тромав код в сравнение на същото написано на C.
Кого си тръгнал да убеждаваш колко добър е беисика. Пирев е човек дето надали някога ще му стигнеш нивото ти отговори много аргументирано. Ама то глас в пустиня. Напрегни си малко тая тиква дето я имаш на главата явно и сам ще стигнеш до това което ти казват хората.
|
| Пет Яну 20, 2006 3:22 am |
|
 |
|
evc
Ранг: Напреднал
Регистриран на: Пет Окт 21, 2005 8:45 am Мнения: 499
|
Темата се превърна в "C VS Останалите"  . Мисля, че няма смисъл от такива препирни! Безспорно С е мощен инструмент, аргумента на Пирев, който и аз бих изтъкнал, че на него се пишат операционните системи, е доста силен! Все пак обаче на съвременния етап с наличието на толкова библиотеки на всички езици, човек трябва просто да си избере един и да си пише на него. Все пак не препоръчвам Бейсик. По-добре Паскал! Но е лично мнение! Това, което искам да кажа е, че е много важно все пак да се разбира КАК РАБОТИ МАШИНАТА! Ето защо на начинаещите колеги бих препоръчал, да се запознаят добре с асемблера и самите физически принципи на работа на процесора. Това е. Не е лошо да се познават поне и основните принципи на "hardware"-а. Пък си харесвайте който искате език!
На колегата, който спомена за библиотеките, искам да кажа да не се притеснява, във всеки уважаващ себе си (разбирай, който е видял "бял интернет") компилатор е взето под внимание това, и всички библиотеки са така написани, че да връщат управлението на главната програма, така, както са го получили. Т.е. всички променливи се запазват в стека и стойностите им се връщат след това. От тая гледна точка няма от какво да се притесняваш!
|
| Пет Яну 20, 2006 9:25 am |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Няма лъжа няма измама
 Nikola Kirov
Толкова приятни емоции ми донесе постати И аз неочаквах да е толкова голяма разликата.
Ама чак пък токова да се шокираш. Че да не вярваш даже.
Асоцияцията която правиш със правешкия бейсик те подвежда.
Става въпрос за програмиране на микропроцесори със Протон.
Защо вместо с поредните общи приказки не се включиш със любимите си Жар и Хаи- тех пусни волтмера на някоя мега на 4Мх кварц.
Хаде какво са за теб 20 мин.(2х10мин)
Дай числата а изводите всеки сам ще си ги направи.
|
| Пет Яну 20, 2006 11:14 am |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Просто не мога да си обясня от къде се пръкват непрекъснато тия противници на C.  И в ембедед, и в десктоп областите. Все пак противниците е редно да се замислят - C е вече на почти 35 години, но въпреки това заема господсващо положение. И реално - всичко смислено през тия >30 год. се пише на C. 
|
| Пет Яну 20, 2006 11:16 am |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Шефе ако имаш време хвърли на тепиха твой вариант на ВОЛТМЕРА.
Не съм против никой език.
Правим си сравнение на компилатори.
|
| Пет Яну 20, 2006 11:30 am |
|
 |
|
¶
Ранг: Форумен бог
Регистриран на: Пет Фев 25, 2005 1:58 pm Мнения: 4585 Местоположение: US
|
Не е коректна задачата ти, Румене. От Протон програмата не се разбира в какъв формат ти са числата, с които работиш - 1 байт ли са ,2 байта ли са, плаваща запетая ли си ? С каква разделителна способност ти е показанието на дисплея ? Задай малко по-коректно първоначалното задание. Preadator_MF изпозлзва 32-битово преобразуване за да се получи приемливо точен резултат, за туй и при него програмата е по-голяма. При теб явно използваш 8-бита, затова ти е малка програмата. По-добре сравни събиране, изваждане, умножение и деление на 8,16,32 битови числа със знак и събиране, изваждане, умножение и деление на 32-бита числа с плаваща запетая. Тогава резултатите ще бъдат много по-коректни и ще бъдат съвсем близки. Примерно ето ти варианта на C, ти ще напишеш варианта на Протон. Използвам CCS C компилатора за PIC16.
_________________ Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....
|
| Пет Яну 20, 2006 3:57 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
При мен съм ползвал стандартната библиотека на CCS за управление на LCD, в която малко по-сложно/професионално са написани функциите, с цел универсалното и ползване за който и да е порт на процесора с промяната на само един ред....няма смисъл да сядам да я пиша на ASM в момента само за да докажа че тоя код може да се съкрати под 300 реда (гарантирам че мога да го направя) само и само да доказвам 
|
| Пет Яну 20, 2006 4:12 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
За волтмера ползвам 16 битова променлива.
Изобразяването е като при тебе.
Х.ХХ
Аз също ползвам стандартни команди.
Device = 16F877
XTAL = 4
'OPTIMISER_LEVEL = 6
Dim a8 As Byte
Dim b8 As DWord
Dim c8 As Byte
Dim a16 As Word
Dim b16 As DWord
Dim c16 As DWord
Dim fa As Float
Dim fb As Float
Dim fc As Float
a8 = 122; b8 = -122;
c8 = a8 + b8
c8 = a8 - b8
c8 = a8 * b8
c8 = a8 / b8
a16 = 4321
b16 = -1234
c16 = a16 + b16
c16 = a16 - b16
c16 = a16 * b16
c16 = a16 / b16
fa = 3.141593
fa = 6.283185
fc = fa + fb
fc = fa - fb
fc = fa * fb
fc = fc / fb
резултатите са
935 реда с изключен оптимизатор
927 със включен
61 променливи
|
| Пет Яну 20, 2006 4:32 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Тука вече почвам да се убеждавам все повече да не ползвам Протон, къде ти отидоха тия 61 променливи бе  След малко може да пусна кода на MPLAB да симулирам и времената 
|
| Пет Яну 20, 2006 4:35 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
RAM used: 26 (15%) at main() level
42 (24%) worst case
Stack: 1 locations
Това е от ¶-rev
16.58% е при мене
Нито убеждавам нито разубеждавам.
Правим си тестове.
А забравих за времето е 0.009727s.
|
| Пет Яну 20, 2006 4:49 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Време за изпълнение (+един NOP в края за breakpoing  ) 1.025000ms .... 0.001025s
|
| Пет Яну 20, 2006 5:32 pm |
|
 |
|
TheHungry
Ранг: Почетен член
Регистриран на: Съб Сеп 03, 2005 11:31 am Мнения: 766 Местоположение: Пловдив
|
AVR -> Mega 8
Chip: ATmega8
Program type: Application
Memory model: Small
Optimize for: Size
(s)printf features: int
(s)scanf features: int, width
Promote char to int: No
char is unsigned: Yes
8 bit enums: Yes
Enhanced core instructions: On
Automatic register allocation: On
131 line(s) compiled
No errors
2 warning(s)
Bit variables size: 0 byte(s)
Data Stack area: 60h to 15Fh
Data Stack size: 256 byte(s)
Estimated Data Stack usage: 24 byte(s)
Global variables size: 0 byte(s)
Hardware Stack area: 160h to 45Fh
Hardware Stack size: 768 byte(s)
Heap size: 0 byte(s)
EEPROM usage: 0 byte(s) (0.0% of EEPROM)
Program size: 656 words (16.0% of FLASH)
#include <mega8.h>
void main(void)
{
signed int a8,b8,c8;
signed long a16,b16,c16;
float fa,fb,fc;
a8 = 122; b8 = -122;
c8 = a8 + b8;
c8 = a8 - b8;
c8 = a8 * b8;
c8 = a8 / b8;
a16 = 4321;
b16 = -1234;
c16 = a16 + b16;
c16 = a16 - b16;
c16 = a16 * b16;
c16 = a16 / b16;
fa = 3,141593;
fa = 6,283185;
fc = fa + fb;
fc = fa - fb;
fc = fa * fb;
fc = fc / fb;
}
131 line(s) compiled
No errors
2 warning(s)
Bit variables size: 0 byte(s)
Data Stack area: 60h to 15Fh
Data Stack size: 256 byte(s)
Estimated Data Stack usage: 24 byte(s)
Global variables size: 0 byte(s)
Hardware Stack area: 160h to 45Fh
Hardware Stack size: 768 byte(s)
Heap size: 0 byte(s)
EEPROM usage: 0 byte(s) (0.0% of EEPROM)
Program size: 675 words (16.5% of FLASH)
P.S
Тука влиза и инициализирането на процесора и рама
|
| Пет Яну 20, 2006 6:29 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 2 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|