|
AVR ADC 10 bit ,help me |
|
|
|
 |
Ответов
|
Apr 6 2011, 06:34
|
Группа: Новичок
Сообщений: 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
|
|
|
|
|
Apr 7 2011, 02:26
|
Частый гость
 
Группа: Участник
Сообщений: 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
|
|
|
|
|
Apr 7 2011, 21:44
|

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

|
Цитата(vanduongbk @ Apr 7 2011, 05:26)  not learnt this language Time to learn it then  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  ), 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 - &&
|
|
|
|
Сообщений в этой теме
vanduongbk AVR ADC 10 bit ,help me Apr 2 2011, 03:49 TVF Datasheet page 214: "ADCL must be read first,... Apr 2 2011, 04:49 Son Of Stone Цитатаhow I can transfer this 10 bit once time to ... Apr 2 2011, 07:35 vanduongbk thank you very much for your best reply
yes ,i com... Apr 3 2011, 06:19 _Pasha BTW avr DLL is slightly mature in your installatio... Apr 3 2011, 04:38 _Pasha Check your private mail box Apr 3 2011, 07:26 vanduongbk and now i only use adc bit ,i transmit data to pc ... Apr 5 2011, 07:08 _Pasha Цитата(vanduongbk @ Apr 5 2011, 10:08) pl... Apr 5 2011, 08:25 vanduongbk yes i need to plot it in real time ,please help me... Apr 6 2011, 05:04 _Pasha Цитата(vanduongbk @ Apr 6 2011, 08:04) yo... Apr 6 2011, 06:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|