ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
26 ноября
578575 Топик полностью
Vit (08.02.2015 15:43 - 15:47, просмотров: 104) ответил Лагунов на вот так и пошел, сначала на SPI увидал свои 16 бит, теперь прицепился к SysTick и то же самое - с дискретностью 1 мсек. А потом надо самое неприятное - формировать цифры сотен, десятков, единиц, знакогенератор. Как-то на Си это? Вероятно
Есть ещё препроцессор. как понимаю, у Вас семисегментник с точкой, подключен к одному регистру, который на SPI, со вторым, где разряды, Вы сами разберетесь Набросал, как оно может выглядеть //Зарисуем номера битов, соответствующих сегментам, прям со схемы. Например разбросаны как-то так: #define bA 2 #define bB 0 #define bC 3 #define bD 4 #define bE 7 #define bF 8 #define bG 6 #define bH 5 //Намалюем битовые маски #define sA (1U << bA) #define sB (1U << bB) #define sC (1U << bC) #define sD (1U << bD) #define sE (1U << bE) #define sF (1U << bF) #define sG (1U << bG) #define sH (1U << bH) //теперь пропишем коды для цифр 0-F //#define _8 (sA|sB|sC|sD|sE|sF|sG) #define _0 (sA|sB|sC|sD|sE|sF ) #define _1 (sA|sB ) #define _2 (sA|sB |sD|sE |sG) #define _3 (sA|sB|sC|sD |sG) #define _4 ( sB|sC |sF|sG) #define _5 (sA |sC|sD |sF|sG) #define _6 (sA |sC|sD|sE|sF|sG) #define _7 (sA|sB|sC ) #define _8 (sA|sB|sC|sD|sE|sF|sG) #define _9 (sA|sB|sC|sD |sF|sG) #define _A (sA|sB|sC |sE|sF|sG) #define _B ( sC|sD|sE|sF|sG) /* b */ #define _C (sA |sD|sE|sF|sG) #define _D ( sB|sC|sD|sE |sG) /* d */ #define _E (sA |sD|sE|sF|sG) #define _F (sA |sE|sF|sG) const unsigned char hex2segs[]={_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_A,_B,_C,_D,_E,_F};//такой вот знакогенератор #define iHEX2SEGS_CONVERT(X) (hex2segs[((X) & 0x0F)]) // преобразование макросом unsigned char hex2segs_convert(unsigned char dig){ // преобразование функцией return hex2segs[(dig & 0x0F)];// & 0x0F для предотвращения обращения за границы массива } SPI_Out( hex2segs_convert(digit)); //добавить точку SPI_Out( hex2segs_convert(digit) | sH ); //для инвертированного вывода SPI_Out( ~( hex2segs_convert(digit) | sH ) ); как-то так