как 4байта прочитать побитно и в конце добавить еденицу
|
|
trim | Дата: Среда, 16.04.2014, 21:05 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| Привет всем есть такая тема.необходимо прочитать побитно 4байта потом добавить бит в начале строки и один убрать в конце .как бы это осуществить ?спасибо
Сообщение отредактировал trim - Среда, 16.04.2014, 21:54 |
|
| |
top | Дата: Среда, 16.04.2014, 23:16 | Сообщение # 2 |
Группа: Друзья
Сообщений: 146
Статус: Offline
| 1) Можно воспользоваться операциями побитового сдвига Shift ну или вращения Rotate 2) Чтобы установить или снять n-ный бит в байтовой переменной var надо сделать Set var.n либо Reset var.n
Конкретно по заданию берется переменная Long (four bytes) в нее загоняются Ваши 4 байта (присваиваем Long = 1й байт, затем делаем сдвиг Long влево на 8 бит и прибавляем к Long второй байт, опять сдвиг и.т.д.) а затем все сдвигаем на один бит вправо, тем самым на месте старшего бита появляется ноль а младший пропадает в небытие. Остается только записать старший бит какой Вам нужен.
На правду не претендую, возможно придется подкуралесить, попробовать вместо Long тип String*4. Это не единственный вариант, хорошо подумать и их много можно реализовать. Будут вопросы, задавайте
Сообщение отредактировал top - Среда, 16.04.2014, 23:18 |
|
| |
trim | Дата: Среда, 16.04.2014, 23:35 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| я пробую реализовать бегущую строку на диодной матрице .пока тока изучаю .цыфры буквы написать не проблема а вот чтоб здвигалось все как нить в бок вот проблема пока .там чото мудрить надо с Data + побитный сдвиг в нужную сторону
|
|
| |
trim | Дата: Воскресенье, 20.04.2014, 11:37 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| $regfile = "m32def.dat" $crystal = 4000000 $hwstack = 40 $swstack = 16 $framesize = 32
Dim A As Byte Dim B As Byte Dim C As Byte
Dim Cod As String * 5 Dim Kol As Byte Dim Excp As Word Dim Ex As String * 5 Dim Stroka As Long Dim T As Integer
Dim B1 As Byte Dim B2 As Byte Dim B3 As Byte Dim B4 As Byte Dim B5 As Byte Dim B6 As Byte Dim B7 As Byte Dim B8 As Byte Dim B9 As Byte Dim B10 As Bit Dim B11 As Bit Dim B12 As Bit Dim B13 As Bit Dim B14 As Bit Dim B15 As Bit Dim B16 As Bit Dim B17 As Bit Dim B18 As Bit Dim B19 As Bit Dim B20 As Bit
Config Portc = Output Config Portd = Output Stolb Alias Portc
Restore Dta1 Read B1 Read B2 Read B3 Read B4 Read B5 Read B6 Read B7 Read B8
Do Incr A If A = 9 Then A = 0 End If Incr B
T = 1
Select Case A '11111111111111111 Case 1: Stolb = &B10000000 Stroka = B1 Case 2: Stolb = &B01000000 Stroka = B2 Case 3: Stolb = &B00100000 Stroka = B3 Case 4: Stolb = &B00010000 Stroka = B4
Case 5: Stolb = &B00001000 Stroka = B5
Case 6: Stolb = &B00000100 Stroka = B6
Case 7: Stolb = &B00000010 Stroka = B7
Case 8: Stolb = &B00000001 Stroka = B8 '22222222222222222 Stroka = B1 End Select Shiftout Portd.1 , Portd.0 , Stroka , 1 Pulseout Portd , 2 , 10 Waitms T Loop
Return End
Dta1:
Data &B11111111 , &B11111111 , &B11110111 , &B11111011 , &B10000001 , &B11111111 , &B11111111 , &B11111111 , &B00000000
Сообщение отредактировал trim - Воскресенье, 20.04.2014, 11:43 |
|
| |
trim | Дата: Воскресенье, 20.04.2014, 11:42 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 105
Статус: Offline
| привет .вот есть такой код он считывает одну строку data появляется один символ в светодиодной матрице но как организовать здвиг чтоб символ на матрице двигался ? и еще вопрос как читает read остальные строчки data (если они есть) вот ковырял .ковырял .и не понЯл подскажите?
|
|
| |