Отговори на тема  [ 41 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
Въпрос от MikroC 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Само кажи за какво LCD го правим и след малко го имаме и на Proteus, голям съм навитак да си изгубя следващите 10 минути за да спрете да остроумничите с тия Pascal и Basic (не че и аз не пиша на Delphi) :lol: Който падне - каса бира, ама понеже е зима ще мине номера и с греяно вино :lol:


Пет Яну 20, 2006 12:41 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 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
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Сега ще ме караш да дописвам LCD.h файла щото е мазан на C и не е подреден...

Код:
void main()
{
   setup_adc_ports(AN0);
   setup_adc(ADC_CLOCK_INTERNAL);
   
   lcd_init();                // Initialize LCD
   
   set_adc_channel( 0 );
   
   While (1){
   lcd_clear();
   printf(lcd_putc,"DC Volts=%4.2w",((int32)read_adc()*500)/1024);
   delay_ms(100);
   }   
}


    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
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Абе защо му се връзваш на Румен.
Тоя размер на кода дето го е дал че е 381 думи е нереален за тази програма. Особенно пък на Беисик. Предполагам че нещо не е доразбрал за кое се отнася това. Или някаква друга подробност има дето се изплъзва. Тои още малко ще изкара че е ефективен като асемблера :)

Ами общи линии за коректно написана бибиотека за LCD-то отива към 250-300 баита. Нещо не е както тябва.
Ама то да тръгнеш да сравняваш C с Беисик то смешна работа. Всички сме почнали нявга с правеца и беисика и си го знаем що за тромаво чудо е и колко е трудно да се изрази някои малко по сложен алгоритъм. По моя преценка за такава тъпотия като тоя волтметър би трябвало C и Беисик да дадат приблизително еднакъв по големина код ако се спазва точно един алгоритъм. Просто е тъп линеен код дето няма много възможности да се оптимизира. Но сложи му един реален проект с ползване на няколко прекъсвания,накакъв протокол за обмен по серииния порт с корекция на грешките,променливи в еепрома, и 2-3 задачи дето да ти се изпъляват паралелно което е съвсем нормално в един реален проект ,ами Руменчо тогава едно че ще ти се отели вола да го напишеш на беисик ами и ще стигнеш сигурно до над 30 процента по голям и тромав код в сравнение на същото написано на C.
Кого си тръгнал да убеждаваш колко добър е беисика. Пирев е човек дето надали някога ще му стигнеш нивото ти отговори много аргументирано. Ама то глас в пустиня. Напрегни си малко тая тиква дето я имаш на главата явно и сам ще стигнеш до това което ти казват хората.


Пет Яну 20, 2006 3:22 am
Профил
Ранг: Напреднал
Ранг: Напреднал
Аватар

Регистриран на: Пет Окт 21, 2005 8:45 am
Мнения: 499
Мнение 
Темата се превърна в "C VS Останалите" :wink: :D . Мисля, че няма смисъл от такива препирни! Безспорно С е мощен инструмент, аргумента на Пирев, който и аз бих изтъкнал, че на него се пишат операционните системи, е доста силен! Все пак обаче на съвременния етап с наличието на толкова библиотеки на всички езици, човек трябва просто да си избере един и да си пише на него. Все пак не препоръчвам Бейсик. По-добре Паскал! Но е лично мнение! Това, което искам да кажа е, че е много важно все пак да се разбира КАК РАБОТИ МАШИНАТА! Ето защо на начинаещите колеги бих препоръчал, да се запознаят добре с асемблера и самите физически принципи на работа на процесора. Това е. Не е лошо да се познават поне и основните принципи на "hardware"-а. Пък си харесвайте който искате език!

На колегата, който спомена за библиотеките, искам да кажа да не се притеснява, във всеки уважаващ себе си (разбирай, който е видял "бял интернет") компилатор е взето под внимание това, и всички библиотеки са така написани, че да връщат управлението на главната програма, така, както са го получили. Т.е. всички променливи се запазват в стека и стойностите им се връщат след това. От тая гледна точка няма от какво да се притесняваш!


Пет Яну 20, 2006 9:25 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 25, 2004 3:42 pm
Мнения: 913
Мнение 
Няма лъжа няма измама
=D> Nikola Kirov
Толкова приятни емоции ми донесе постати И аз неочаквах да е толкова голяма разликата.
Ама чак пък токова да се шокираш. Че да не вярваш даже.
Асоцияцията която правиш със правешкия бейсик те подвежда.
Става въпрос за програмиране на микропроцесори със Протон.
Защо вместо с поредните общи приказки не се включиш със любимите си Жар и Хаи- тех пусни волтмера на някоя мега на 4Мх кварц.
Хаде какво са за теб 20 мин.(2х10мин)

Дай числата а изводите всеки сам ще си ги направи.


Прикачени файлове:
V_meter.txt [68.72 KiB]
332 пъти
Пет Яну 20, 2006 11:14 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Просто не мога да си обясня от къде се пръкват непрекъснато тия противници на C. :D И в ембедед, и в десктоп областите. Все пак противниците е редно да се замислят - C е вече на почти 35 години, но въпреки това заема господсващо положение. И реално - всичко смислено през тия >30 год. се пише на C. :)


Пет Яну 20, 2006 11:16 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 25, 2004 3:42 pm
Мнения: 913
Мнение 
Шефе ако имаш време хвърли на тепиха твой вариант на ВОЛТМЕРА.
Не съм против никой език.
Правим си сравнение на компилатори.


Пет Яну 20, 2006 11:30 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение 
rumen написа:
Дай числата а изводите всеки сам ще си ги направи.

Не е коректна задачата ти, Румене. От Протон програмата не се разбира в какъв формат ти са числата, с които работиш - 1 байт ли са ,2 байта ли са, плаваща запетая ли си ? С каква разделителна способност ти е показанието на дисплея ?
Задай малко по-коректно първоначалното задание. Preadator_MF изпозлзва 32-битово преобразуване за да се получи приемливо точен резултат, за туй и при него програмата е по-голяма. При теб явно използваш 8-бита, затова ти е малка програмата.
По-добре сравни събиране, изваждане, умножение и деление на 8,16,32 битови числа със знак и събиране, изваждане, умножение и деление на 32-бита числа с плаваща запетая. Тогава резултатите ще бъдат много по-коректни и ще бъдат съвсем близки. Примерно ето ти варианта на C, ти ще напишеш варианта на Протон. Използвам CCS C компилатора за PIC16.
Цитат:

#include "16f877a.h"
#CASE

void main(void) {
signed int8 a8,b8,c8;
signed int16 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;
}

ROM used: 1019 words (12%)
Largest free fragment is 2048
RAM used: 26 (15%) at main() level
42 (24%) worst case
Stack: 1 locations

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пет Яну 20, 2006 3:57 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
При мен съм ползвал стандартната библиотека на CCS за управление на LCD, в която малко по-сложно/професионално са написани функциите, с цел универсалното и ползване за който и да е порт на процесора с промяната на само един ред....няма смисъл да сядам да я пиша на ASM в момента само за да докажа че тоя код може да се съкрати под 300 реда (гарантирам че мога да го направя) само и само да доказвам :wink:


Прикачени файлове:
Voltmer_PIC.gif
Voltmer_PIC.gif [ 72.6 KiB | Прегледано 3584 пъти ]
Коментар на файл: Proteus симулация + HEX
Voltmeter.rar [12.13 KiB]
247 пъти
Пет Яну 20, 2006 4:12 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 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
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Тука вече почвам да се убеждавам все повече да не ползвам Протон, къде ти отидоха тия 61 променливи бе :lol: След малко може да пусна кода на MPLAB да симулирам и времената :)


Пет Яну 20, 2006 4:35 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 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
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Време за изпълнение (+един NOP в края за breakpoing :D ) 1.025000ms .... 0.001025s


Прикачени файлове:
Коментар на файл: Listing-а
C_PAS_lis.txt [5.48 KiB]
295 пъти
Пет Яну 20, 2006 5:32 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 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
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 41 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 9 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни