| как 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 (если они есть) вот ковырял .ковырял .и не понЯл подскажите? 
 
 |  
 |  |  |  |