реклама на сайте
подробности

 
 
> AVR ADC 10 bit ,help me
vanduongbk
сообщение Apr 2 2011, 03:49
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 22-12-10
Пользователь №: 61 811



I write program convert adc 10 bit and results to led ,it operates accuracy but i have a problem while simulation by protues ,it appears warning as below ,i dont know it operate or not in real circuit ,please help me

this is warning

Прикрепленное изображение


and this is code

Прикрепленное изображение


and I want to ask how I can transfer this 10 bit once time to pc through rs232
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
fest
сообщение Apr 6 2011, 06:34
Сообщение #2





Группа: Новичок
Сообщений: 5
Регистрация: 5-10-10
Пользователь №: 59 936



i have code work with rs232 in borland delphi. you can translate it to whatever you need.
CODE

unit Unit33;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;

type
TForm1 = class(TForm)
Timer1: TTimer;
Label2: TLabel;
Label1: TLabel;
Timer2: TTimer;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure q(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
hcom,houtfile: thandle;
dcb: tdcb;
stat: tcomstat;
lock: bool;
bytecount: dword;
databuf, x: byte;
const bufsize=sizeof(databuf);
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
x:=0;
stat.cbInQue:=0;
bytecount:=0;
lock:=true;
hcom:=createfile('com3',generic_read or generic_write,0,nil,open_existing,file_attribute_normal,0);
if hcom=invalid_handle_value then begin
showmessage('can''t open port');
application.Terminate;
end;
setupcomm(hcom,1600,1600);
with dcb do begin
baudrate:=57600;
bytesize:=8;
parity:=noparity;
stopbits:=onestopbit;
end;
if not setcommstate(hcom,dcb) then begin
showmessage('can''t set port');
application.Terminate;
end;
houtfile:=createfile('out.txt',generic_read or generic_write,0,nil,open_always,
file_attribute_normal,0);
if houtfile=invalid_handle_value then begin
showmessage('can''t open out file');
application.Terminate;
end;
lock:=false;
end;

procedure TForm1.q(Sender: TObject; var Action: TCloseAction);
begin
closehandle(houtfile);
closehandle(hcom);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i,blocks,errors,bytes: dword;
begin
if not lock then begin
lock:=true;
clearcommerror(hcom,errors,@stat);
blocks:=stat.cbInQue div bufsize;
if blocks>0 then begin
for i:=1 to blocks do begin
if not readfile(hcom,databuf,bufsize,bytes,nil)
then beep;
writefile(houtfile,databuf,bufsize,bytes,nil);
inc(bytecount,bytes);
image1.Canvas.Pixels[x, 255-databuf]:=0;
inc(x);
if (x > 340) then x:=0;
end;
flushfilebuffers(houtfile);
end;
label1.Caption:='read '+inttostr(blocks)+
' blocks. write in file '+inttostr(bytecount)+' bytes';
form1.Caption:=datetimetostr(date+time);
lock:=false;
end;
end;

end.


Сообщение отредактировал IgorKossak - Apr 6 2011, 07:06
Причина редактирования: Use [codebox] tags
Go to the top of the page
 
+Quote Post
vanduongbk
сообщение Apr 7 2011, 02:26
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 82
Регистрация: 22-12-10
Пользователь №: 61 811



Цитата(fest @ Apr 6 2011, 13:34) *


thank you for this help but i cant know borland delphi language because i am not learnt this language

Сообщение отредактировал IgorKossak - Apr 7 2011, 07:19
Причина редактирования: overquoting
Go to the top of the page
 
+Quote Post
defunct
сообщение Apr 7 2011, 21:44
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(vanduongbk @ Apr 7 2011, 05:26) *
not learnt this language

Time to learn it then sm.gif
Borland C++ Builder uses the same set of VCL components as Delphi. I'd suggest to get Borland C++ Builder 6.0 and to have a look at the "chart" component example there.
Its pretty simple to draw graphics with it. Much simpler than in stupid vc.
All what you'd need to get done is to launch C++ Builder, find "Chart" component on the components toolbar in "Additional" section, put "Chart" component on the application form, setup needed parameters width/ height / color / font size etc, then periodically re-load actual values gotten from COM port into it in real time. It shall draw graphic and scale automatically.

If you'd find "Chart" is not what you're looking for (e.g. too slow or too smart sm.gif ), you may refer to more stupid "Image" component example. In the "Image" you're allowed to draw graphic primitives(pixels, lines, circles etc) manually, like follows:

Image1->Canvas->pixels[x, y] = color;

note: referring directly to pixels[] array would work slower compared to drawing graphic with advanced func primitives - line(), rect(), arc() etc.

fest already showed how simple the program may be on Delphi. Same size program will be in C++ Builder just different lang.
btw, there is nothing complex in reading Delphi, below are several compliances b/w those langs, which would allow you to read fest's example:

Код
deplhi               C

begin              -  {
end                -  }
:=                 -  =
integer(x)         -  (int)x
var x,y : integer; -  int x, y;

if condition then  -  if (condition)
  operator1              operator1;
else                  else
  operator2;             operator2;

Form1.Image1       -  Form1->Image1
not                -  !
or                 -  ||
and                -  &&
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 12:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01415 секунд с 7
ELECTRONIX ©2004-2016