samego | Дата: Воскресенье, 24.04.2016, 20:46 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 1
Статус: Offline
| Всем добрый день. Собрал схему на Atmega-8 с двумя светодиодными китайскими матрицами P10 Red/Green. При написание программы возникла одна проблема. При свечение изображения некоторые светодиоды, расположенные с теми которые светятся, немного подсвечиваются и иногда подмигивают (еле еле заметно). В этом куске программы данные берутся из внешней памяти. Может кто сможет подсказать где у меня ошибка. Сразу скажу - код возможно кривоват. Из него даже бегущую строку не сделать.
$map $regfile = "m8def.dat" $crystal = 12000000 $hwstack = 128 $swstack = 128 $framesize = 128 $baud = 9600
Config Portd = &B11000000 ' 6,7 port out Config Portb = &B00001111 ' 0-3 port out Config Portc = &B00000011 ' 0,1 port out
Sh Alias Portb.0 D_red Alias Portd.6 D_green Alias Portc.0 A_pos Alias Portb.2 B_pos Alias Portb.1 Port_write Alias Portd.7
Peredacha Alias Portc.1 Peredacha = 1
Config Int0 = Low Level Config Portb.3 = Output Portb.3 = 1 Tccr2 = &B01101100 Ocr2 = 1
$lib "mcsbyte.lbx"
Config Scl = Portc.5 Config Sda = Portc.4 Config I2cdelay = 1 I2cinit
Dim Temp As Byte , T As Byte , Y As Byte , R(128) As Byte , Temp2 As Byte Dim Adres As Byte , Page As Byte , Page_read As Byte , Pause As Byte
Page = 164 Page_read = 165 Adres = 0 Pause = 100
Gosub Read_dannie
Do
Gosub Lpokaz
Loop
End
Loads_a: I2cstart I2cwbyte Page I2cwbyte Adres I2cstart I2cwbyte Page_read
For T = 1 To 15 I2crbyte R(y) , Ack lds R16 , {y} inc R16 sts {y} , R16 Next T I2crbyte R(y) , Nack
I2cstop Return
Read_dannie: Y = 1 For Temp = 1 To 8 Gosub Loads_a Adres = Adres + 16 lds R16 , {y} inc R16 sts {y} , R16 Next Return
Lpokaz: A_pos = 1 : B_pos = 1 T = 1 : Y = 32 Gosub Sbor A_pos = 0 : B_pos = 0 T = 33 : Y = 64 Gosub Sbor A_pos = 1 : B_pos = 0 T = 65 : Y = 96 Gosub Sbor A_pos = 0 : B_pos = 1 T = 97 : Y = 128 Gosub Sbor Return
Sbor: For Temp = T To Y Gosub Indikator Next Temp
Port_write = 1 !NOP !NOP Port_write = 0 Return
Indikator: Shiftout D_green , Sh , R(temp) , 0 'Shiftout D_red , Sh , R(temp) , 0 Waitus Pause Return Подсвечивающие светодиоды обведены на картинке красным цветом.
|
|
| |
exersizze | Дата: Среда, 27.04.2016, 21:09 | Сообщение # 2 |
Группа: Администраторы
Сообщений: 723
Статус: Offline
| samego, ну хз. По коду сказать сложно что-то. Попробуй включить светодиоды, в области где идет засвет, по отдельности. Возможно что сама матрица такие сюрпризы выкидывает.
|
|
| |