Продолжаю битву с ISP1581. Документация не фонтан. Есть 3 вопроса к юзавшим этот контроллер:
1)Как все таки работать с многобайтовыми регистрами? Так, как в примерах Филлипса? Т.е:
Код
isp1581Regs.INT_ENABLE.value = 0x04030201;
которая скомпилится в что-то вроде
по адресу 0x14 пишем 0x04
по адресу 0x15 пишем 0x03
по адресу 0x16 пишем 0x02
по адресу 0x17 пишем 0x01
или же байты регистра пишутся по одному и тому же адресу? Очень уж неясно описано в datasheet'е.
2)Читал я на каком то форуме, что этот контроллер некорректно работает с прерываниями. Вот я для примера балуюсь с регистром INT_ENABLE, который позволяет разрешать отдельные прерывания. По умолчанию там все нули, т.е. все источники прерываний запрещены. Но когда втыкаю разьем, проскакивает 2 прерывания, похоже Bus Reset. Снятие флага общего разрешения прерываний затыкает намертво, как и должно быть. Получается, что прерываниям ISP1581 нельзя доверять?
3)Ведь 2хбайтовые поля Device Request приходят младшим байтом вперед?
ЗЫ. Кому не жалко, пришлите кусок рабочего кода с реализацией хотя бы GetDescriptor запроса под AT89 проц (с приёмом Device Request, анализом его полей)