US5MUW | Дата: Вторник, 21.01.2014, 17:48 | Сообщение # 1 |
Группа: Пользователи
Сообщений: 5
Статус: Offline
| Добрый день ! Недавно собрал первую конструкцию на Атмеге 16 - КСВ метр, который использует 4 порта АЦП для опроса напряжений на внешних датчиках и вывода цифровых значений и "градусника" - бегающего столбика.
Все бы ничего, все считает вот только при выводе на дисплей мерцает "градусник" и цифры.... если убираю задержку в программе - дисплей вообще с ума сходит... подскажите как убрать мерцание и получилось вроде этого
|
|
| |
US5MUW | Дата: Вторник, 21.01.2014, 17:50 | Сообщение # 2 |
Группа: Пользователи
Сообщений: 5
Статус: Offline
| вот исходник для двух АЦП и дисплея 20 на 4, им я руководствовался
$regfile = "m8def.dat" $crystal = 12000000
Config Portb = Output Config Lcdpin = Pin , Rs = Portb.5 , E = Portb.4 , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 Config Lcd = 16 * 2 Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Portc.0 = Input Config Portc.1 = Input Config Portc.5 = Output Enable Interrupts Enable Int1 On Int1 Pow Config Int1 = Falling
Dim A As Integer Dim B As Integer Dim C As Single Dim D As Single Dim I As Single Dim W As Single Dim G As Single Dim H As Single Dim J As Single Dim U As Byte Dim K As Byte Dim L As Byte Dim R As Byte Dim N As Single Dim L1 As Integer Dim R1 As Integer
Deflcdchar 1 , 24 , 24 , 24 , 24 , 24 , 24 , 24 , 24
Deflcdchar 2 , 27 , 27 , 27 , 27 , 27 , 27 , 27 , 27
Cursor Off Cursor Noblink Cls Locate 1 , 2 Lcd "ҐЅгёєaїop KCB" Locate 2 , 3 Lcd "ё MoжЅocїё" Wait 1 Cls Locate 1 , 5 Lcd "«іaЅoі" Locate 2 , 5 Lcd "UA3RQN" Wait 1 Cls '----------------------------------------- '----------------------------------------- I = 50 K = 200 U = 1 Do
M1:
Start Adc A = Getadc(0) B = Getadc(1) Stop Adc C = A + B D = A - B W = C / D H = A ^ 2 H = H / I G = B ^ 2 G = B / I J = H - G J = J / K
If W < 1 Then W = 1
If B > A Then Goto Da
If W > 10 Then Goto Kcv
'--------------------------------- '---------------------------------
L1 = J * N
If 0 < L1 And L1 < 0 Then L = 0 End If
If 0 <= L1 And L1 < 64 Then L = 1 End If
If 64 <= L1 And L1 < 128 Then L = 2 End If
If 128 <= L1 And L1 < 192 Then L = 3 End If
If 192 <= L1 And L1 < 256 Then L = 4 End If
If 256 <= L1 And L1 < 320 Then L = 5 End If
If 320 <= L1 And L1 < 384 Then L = 6 End If
If 384 <= L1 And L1 < 448 Then L = 7 End If
If 448 <= L1 And L1 < 512 Then L = 8 End If
If 512 <= L1 And L1 < 576 Then L = 9 End If
If 576 <= L1 And L1 < 640 Then L = 10 End If
If 640 <= L1 And L1 < 704 Then L = 11 End If
If 704 <= L1 And L1 < 768 Then L = 12 End If
If 768 <= L1 And L1 < 832 Then L = 13 End If
If 832 <= L1 And L1 < 896 Then L = 14 End If
If 896 <= L1 And L1 < 960 Then L = 15
End If
If 960 <= L1 And L1 < 1023 Then L = 16
End If
R1 = W * 102
If 0 < R1 And R1 < 0 Then R = 0 End If
If 0 <= R1 And R1 < 64 Then R = 1 End If
If 64 <= R1 And R1 < 128 Then R = 2 End If
If 128 <= R1 And R1 < 192 Then R = 3 End If
If 192 <= R1 And R1 < 256 Then R = 4 End If
If 256 <= R1 And R1 < 320 Then R = 5 End If
If 320 <= R1 And R1 < 384 Then R = 6 End If
If 384 <= R1 And R1 < 448 Then R = 7 End If
If 448 <= R1 And R1 < 512 Then R = 8 End If
If 512 <= R1 And R1 < 576 Then R = 9 End If
If 576 <= R1 And R1 < 640 Then R = 10 End If
If 640 <= R1 And R1 < 704 Then R = 11 End If
If 704 <= R1 And R1 < 768 Then L = 12 End If
If 768 <= R1 And R1 < 832 Then R = 13 End If
If 832 <= R1 And R1 < 896 Then R = 14 End If
If 896 <= R1 And R1 < 960 Then R = 15 End If
If 960 <= R1 And R1 < 1023 Then R = 16 End If
Cls
Select Case L
Case 0 : Lcd "Moж:" ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 1 : Lcd "Moж:" ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 2 : Lcd "Moж:" ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 3 : Lcd "Moж:" ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 4 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 5 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 6 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 7 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 8 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 9 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) Case 10 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) Case 11 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) Case 12 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) Case 13 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) Case 14 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) Case 15 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) Case 16 : Lcd "Moж:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2)
End Select
Lowerline
Select Case R
Case 0 : Lcd "KCB:" ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 1 : Lcd "KCB:" ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 2 : Lcd "KCB:" ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 3 : Lcd "KCB:" ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 4 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 5 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 6 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 7 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 8 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 9 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) Case 10 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) Case 11 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) ; Chr(3) Case 12 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) ; Chr(3) Case 13 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) ; Chr(3) Case 14 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(3) Case 15 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(1) Case 16 : Lcd "KCB:" ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2) ; Chr(2)
End Select
Locate 2 , 13 Lcd Fusing(w , "#.#") Locate 1 , 13 Lcd Fusing(j , "###.#")
Waitms 700
Goto M1 Loop
Da: Cls Locate 1 , 4 Lcd "ЁpoіepДїe" Locate 2 , 5 Lcd "аaїАёє" Sound Portc.5 , 800 , 1000 Wait 2 Cls Goto M1
Kcv: Cls Locate 1 , 4 Lcd "Ёpeгe»ДЅoe" Locate 2 , 7 Lcd "KCB" Sound Portc.5 , 800 , 1000 Wait 2 Goto M1
Pow: Incr U If U > 3 Then U = 1 Select Case U Case 1 : K = 200 : N = 10.2 Case 2 : K = 100 : N = 5.1 Case 3 : K = 10 : N = 0.52 End Select Gifr = 64 Return
|
|
| |
exersizze | Дата: Вторник, 21.01.2014, 18:08 | Сообщение # 3 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| есть возможность снять того что происходит на экране? так сложно определить по исходнику
|
|
| |
AlekS | Дата: Вторник, 21.01.2014, 21:26 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 247
Статус: Offline
| Цитата exersizze ( ) есть возможность снять того что происходит на экране? Чтоб определить в какой момент, есть мнение, что Cls" оф много. Думаю лучше будет Lcd " " - забить пробелами. Пример: Locate 1 , 4 Lcd " " ' здесь 8 забоев = Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3)
Select Case L
Case 0 : Lcd "Moж:" ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 1 : Lcd "Moж:" ; Chr(1) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) Case 2 : Lcd "Moж:" ; Chr(2) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3) ; Chr(3)
Возможно оно. 73!!
Сообщение отредактировал AlekS - Вторник, 21.01.2014, 21:29 |
|
| |
US5MUW | Дата: Вторник, 21.01.2014, 21:40 | Сообщение # 5 |
Группа: Пользователи
Сообщений: 5
Статус: Offline
| присмотритесь...
|
|
| |
US5MUW | Дата: Вторник, 21.01.2014, 22:00 | Сообщение # 6 |
Группа: Пользователи
Сообщений: 5
Статус: Offline
| сейчас выложу видео
|
|
| |
US5MUW | Дата: Вторник, 21.01.2014, 22:40 | Сообщение # 7 |
Группа: Пользователи
Сообщений: 5
Статус: Offline
| http://www.youtube.com/watch?v=Cgf6ZBXpj-Q&feature=youtu.be
|
|
| |