|
Íàó÷èòå êðàñèâî äåðãàòü íîæêàìè STM32 |
|
|
|
Jul 6 2016, 15:40
|
Ìåñòíûé
  
Ãðóïïà: Ó÷àñòíèê
Ñîîáùåíèé: 491
Ðåãèñòðàöèÿ: 18-05-11
Ïîëüçîâàòåëü ¹: 65 102

|
Çäðàâñòâóéòå! Ó ìåíÿ íà ïëàòå ïîëíî ðàçíûõ ñèãíàëîâ óïðàâëåíèÿ îò STM32F429.  ïðîãðàììå íóæíî èìè âñåìè ìàíèïóëèðîâàòü. Èñïîëüçîâàòü ñòàíäàðòíûå ôóíêöèè HAL íåóäîáíî, ïðè íàïèñàíèè ïðîãðàììû ïðèäåòñÿ ÷àñòî îòâëåêàòüñÿ íà ïëàòó, ÷òîáû ïîñìîòðåòü, ãäå íîæêè ðåàëüíî ðàñïîëîæåíû. Äàæå åñëè äåôàéíîì ïðèñâîèòü èìÿ êàêîìó òî âûâîäó, íåïîíÿòíî íà êàêîì îí ïîðòå - íàäî ñìîòðåòü ïëàòó. Êîä HAL_GPIO_WritePin(GPIOA,DAC_RESET,GPIO_PIN_SET); Êîëëåãà îáîðà÷èâàåò òàêèå âåùè â ôóíêöèè Êîä void gpioDACRESET(void) { HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET); } Íî ýòî òîæå íå äåëî. Ïîäñêàæèòå, êàê âû ðåøàåòå òàêèå ïðîáëåìû?
|
|
|
|
|
 |
Îòâåòîâ
|
Jul 8 2016, 09:33
|
Ìåñòíûé
  
Ãðóïïà: Ó÷àñòíèê
Ñîîáùåíèé: 491
Ðåãèñòðàöèÿ: 18-05-11
Ïîëüçîâàòåëü ¹: 65 102

|
Öèòàòà(jcxz @ Jul 8 2016, 00:50)  Æåñòü êàêàÿ.... Îòêðîéòå ó÷åáíèê ïî ñè! Ìàêðîñ - ýòî íå ôóíêöèÿ: #define SET(GPIOx, GPIO_Pin) ... Èçâèíèòå, ÿ ìàêðîñàìè íèêîãäà íå ïîëüçîâàëñÿ, ïðîñòî ó turnon áûëî íàïèñàíî gpioSet(GPIO_TypeDef* GPIOx, PIN_TYPE pin, uint8_t state), ïîýòîìó ÿ òîæå íà÷àë òèïû âñòàâëÿòü.  îáùåì, ñäåëàë òàê Êîä // Òåñòîâûå òî÷êè #define TEST_X1 GPIOC,GPIO_PIN_14 #define TEST_X2 GPIOG,GPIO_PIN_12 #define TEST_X3 GPIOG,GPIO_PIN_13
#define SET(port_pin) HAL_GPIO_WritePin(port_pin,GPIO_PIN_SET) #define RESET(port_pin) HAL_GPIO_WritePin(port_pin,GPIO_PIN_RESET) #define TOGGLE(port_pin) HAL_GPIO_TogglePin(port_pin)
//âûçîâ TOGGLE(TEST_X1); SET(TEST_X2); RESET(TEST_X3);
|
|
|
|
|
Jul 8 2016, 11:20
|
Ãóðó
     
Ãðóïïà: Ñâîé
Ñîîáùåíèé: 5 228
Ðåãèñòðàöèÿ: 3-07-08
Èç: Îìñê
Ïîëüçîâàòåëü ¹: 38 713

|
Âîò òåïåðü óæå ëó÷øå. Ó ìåíÿ â ïðîåêòàõ ïðèìåðíî òàêæå, òîëüêî ïèí ÿ îïðåäåëÿþ êîðî÷å: #define PIN_SSP1_SCLK F, 4 #define PIN_SSP1_TX 1, 4 #define PIN_SSP1_RX 1, 3 #define PIN_LCD_LED 6, 9 Åñëè íóæíî, ïîòîì ê íèì ìîæíî ïðèêëåèòü íåîáõîäèìûå ïðåôèêñû/ñóôôèêñû (òèïà GPIO): GPIO##port âíóòðè ìàêðîñîâ Ïîäîáíî: #define SET_(port, pin) GPIO##port, GPIO_PIN_##pin #define SET(port_pin) SET_(port_pin) È íå ïîëüçóþñü íèêàêèìè HAL-àìè, à ïðÿìî âíóòðè ýòèõ ìàêðîñîâ îáðàùàþñü ê ðåãèñòðàì GPIO.
|
|
|
|
|
Jul 8 2016, 12:05
|

íåîòÿãîù¸ííûé çëîì
     
Ãðóïïà: Ñâîé
Ñîîáùåíèé: 2 746
Ðåãèñòðàöèÿ: 31-01-08
Èç: Ñàíêò-Ïåòåðáóðã
Ïîëüçîâàòåëü ¹: 34 643

|
Öèòàòà(jcxz @ Jul 8 2016, 14:20)  òîëüêî ïèí ÿ îïðåäåëÿþ êîðî÷å: È çðÿ. Âû ëèøàåòå ñåáÿ òàêèõ áëàã êàê: Êîä pin_init(PIN_RTC_SELECT); ... pin_drive(PIN_RTC_SELECT, 1); // do something pin_drive(PIN_RTC_SELECT, 0); Êàê âèäèòå, ñîâñåì íå íàäî çàïàðèâàòüñÿ íè î èíèöèàëèçàöèè, íî î àêòèâíîì óðîâíå.
--------------------
“Áóäüòå âíèìàòåëüíû ê ñâîèì ìûñëÿì - îíè íà÷àëî ïîñòóïêîâ” (Ëàî-Öçû)
|
|
|
|
|
Jul 8 2016, 16:44
|
Ãóðó
     
Ãðóïïà: Ñâîé
Ñîîáùåíèé: 5 228
Ðåãèñòðàöèÿ: 3-07-08
Èç: Îìñê
Ïîëüçîâàòåëü ¹: 38 713

|
Öèòàòà(demiurg_spb @ Jul 8 2016, 18:05)  È çðÿ. Âû ëèøàåòå ñåáÿ òàêèõ áëàã êàê: Íå ïîíÿë ÷åãî èìåííî ÿ ëèøàþñü.... Èíèöèàëèçàöèÿ ïèíîâ ó ìåíÿ äåëàåòñÿ ïðèìåðíî òàê: Êîä //Ðàñïðåäåëåíèå SSI-ïîðòîâ #define nSSI_hsdc 1 //íîìåð SSI äëÿ ADE.HSDC #define nSSI_storage 3 //íîìåð SSI äëÿ FRAM, DFLASH0, DFLASH1 (ñèñòåìà õðàíåíèÿ) #define PIN_FRAM_CS F, 2 //CS äëÿ ÷èïà FRAM #define PIN_ADE_IRQ0 P, 0 //ïðåðûâàíèå 0 îò ADE //Åñëè ñêîïîì èíèòÿòñÿ íåñêîëüêî ïèíîâ: static TPinSel const t_iocon[] = { PINSEL(PIN_FRAM_CS, GPIO, SL, 12mA), PINSEL(PIN_ADE_IRQ0, GPIO, PU); PINSEL(concat(PIN_SSI, nSSI_storage, _MOSI), concat(SSI, nSSI_storage, _XDAT0), PD, SL, 12mA), PINSEL(concat(PIN_SSI, nSSI_storage, _MISO), concat(SSI, nSSI_storage, _XDAT1), PD, SL, 12mA), ... }; PinSelN(t_iocon); //Åñëè ïî îäíîìó ïèíó: PinSel1(PIN_FRAM_CS, GPIO, SL, 12mA); PinSel1(PIN_ADE_IRQ0, GPIO, PU), PinSel1(concat(PIN_SSI, nSSI_storage, _MOSI), concat(SSI, nSSI_storage, _XDAT0), PD, SL, 12mA); PinSel1(concat(PIN_SSI, nSSI_storage, _MISO), concat(SSI, nSSI_storage, _XDAT1), PD, SL, 12mA); ...  ñïèñêå àðãóìåíòîâ ìàêðîñîâ PINSEL è PinSel1 - îïöèè äîñòóïíûå äëÿ äàííîãî ïèíà (ïîäòÿæêà: PU èëè PD; ôèëüòð: SL; ìàêñ.òîê: 2ma, 4ma, 8ma, 12ma, 18ma... è ò.ï.). Ïåðâûé àðãóìåíò â ñïèñêå - èìÿ ïèíà (çàäàííîå define), âòîðîé - ôóíêöèÿ (GPIO èëè îäíà èç ñïåö.ôóíêöèé äîñòóïíûõ íà ýòîì ïèíå), äàëåå - îïöèîíàëüíûé ñïèñîê îïöèé ïèíà ïðîèçâîëüíîé äëèíû. PinSel1 è PinSelN êîíôèãóðÿò êàê îïöèè ïèíà(-îâ) òèïà pullup, pulldown, opendrain è ò.ï., òàê è ïðîãðàììèðóþò ìóëüòèïëåêñîð ïèíîâ íà íóæíóþ ôóíêöèþ. Çäåñü ÿ ïðèâ¸ë ïðèìåðû äëÿ Tiva, íî â äðóãèõ ïðîåêòàõ íà äðóãèõ ÌÊ ó ìåíÿ îðãàíèçîâàíî ïîäîáíûì îáðàçîì, òîëüêî ñïèñîê îïöèé ïèíîâ äðóãîé. È åñòü êó÷êà ìàêðîñîâ òèïà Pset(PIN_...), Pclr(PIN_...), Pval(PIN_...), Pin(PIN_...), Pout(PIN_...) è ò.ï. Òàêèå èìåíà ìàêðîñîâ ó ìåíÿ òîæå îäèíàêîâûå äëÿ ðàçíûõ ïðîåêòîâ íà ðàçíûõ ÌÊ, òîëüêî ðåàëèçàöèÿ âíóòðè ðàçíàÿ, çàâèñÿùàÿ îò ïåðèôåðèè. È ñîâñåì íå çàïàðèâàþñü î èíèöèàëèçàöèè è ò.ï.  Ïðè äîáàâëåíèè íîâîãî ïèíà ïðîñòî äîáàâëÿþ åù¸ îäíó çàïèñü ñ îïèñàíèåì íåîáõîäèìûõ åãî îïöèé. È î÷åíü ëåãêî ïåðåíàçíà÷àòü ïèíû, ìåíÿòü íàçíà÷åíèå ïîðòîâ (UART, SPI, ...).
|
|
|
|
|
Jul 8 2016, 20:00
|

íåîòÿãîù¸ííûé çëîì
     
Ãðóïïà: Ñâîé
Ñîîáùåíèé: 2 746
Ðåãèñòðàöèÿ: 31-01-08
Èç: Ñàíêò-Ïåòåðáóðã
Ïîëüçîâàòåëü ¹: 34 643

|
Öèòàòà(jcxz @ Jul 8 2016, 19:44)  È ñîâñåì íå çàïàðèâàþñü î èíèöèàëèçàöèè è ò.ï.  Íå óâèäåë ó âàñ, ãäå îïðåäåëÿåòñÿ àêòèâíûé óðîâåíü H èëè L è òî, ÷òî âû ïðèâåëè, íå âûãëÿäèò äëÿ ìåíÿ ðàçóìíûì. Åñòü äðàéâåð ÷åãî áû òî íè áûëî è èìåííî îí â ñâîåé ôóíêöèè driver_init() âûçûâàåò pin_init(PIN_NAME) äëÿ ñâîèõ ëèíèé ââîäà-âûâîäà áåç êàêèõ ëèáî äîïîëíèòåëüíûõ àðãóìåíòîâ è ä¸ðãàåò íîãàìè íà ñâî¸ óñìîòðåíèå. Ñìûñë àáñòðàêöèè èìåííî â ýòîì! À ó âàñ êó÷à ñîâåðøåííî ëèøíèõ áóêîâ òàì, ãäå èõ áûòü íå äîëæíî. ÃÎÐÀÇÄÎ ðàçóìíåå â îäíîé ñòðîêå çàäåôàéíèòü âñ¸ ñðàçó: è íîìåð ïèíà, è ïîðò, è àêòèâíûé óðîâåíü, è âñå ðåæèìû ðàáîòû ïîðòà, è ðåìàïû, à íå ðàçìàçûâàòü ñîïëè ïî êîäó. Ïðèìåð äëÿ STM32F37x Êîä #define PIN_BTN_USER A,0,H,REMAP_NONE,INPUT_PULL_DOWN,SPEED_NONE #define PIN_UART2_RTS A,1,H,REMAP_NONE,OUTPUT_PUSH_PULL,SPEED_2MHZ // # software_RTS #define PIN_UART2_TX A,2,L,REMAP_AF07,OUTPUT_PUSH_PULL,SPEED_2MHZ // # #define PIN_UART2_RX A,3,L,REMAP_AF07,INPUT_PULL_UP,SPEED_NONE // #
#define PIN_LAMP_BLUE E,12,H,REMAP_NONE,OUTPUT_PUSH_PULL,SPEED_2MHZ #define PIN_LAMP_RED E,13,H,REMAP_NONE,OUTPUT_PUSH_PULL,SPEED_2MHZ
pin_init(PIN_LAMP_RED);
for(;;) delay_ms(500), pin_toggle(PIN_LAMP_RED); Âû ëèøàåòåñü ïðîçðà÷íîñòè è óäîáñòâà îïèñàíèÿ òàðãåòà: îäíà íîãà - îäíà ñòðîêà è ÍÈÊÀÊÈÕ çàâÿçîê áîëåå. Äàæå åñëè âû, íàïðèìåð, ïîñòàâèëè èíâåðòîð â öåïè ãäå åãî â ïðîøëîé ïëàòå íå áûëî, òî ÍÈ×ÅÃÎ â êîäå ìåíÿòü íå íàäî. Çàìåòüòå, èìåííî òàê âûõîäèò ïîëíîñòüþ àáñòðàãèðîâàòüñÿ îò òàðãåòà è â ñìûñëå ñõåìîòåõíèêè ïëàòû, è â ñìûñëå òèïà MCU: õîòèòå AVR, õîòèòå STM32, õîòèòå ÷¸ðòà â ñòóïå. ÍÈ îäèí âûñîêîóðîâíåâûé äðàéâåð ïàò÷èòü íå ïðèä¸òñÿ âîâñå. Ñîçäàë íîâîå îïèñàíèå òàðãåòà lowlevel333.h è â ïóòü, íå ìåíÿÿ â ïðîåêòå íè îäíîé ñòðî÷êè. Ïðåäâîñõèùàÿ âàøè ïîïûòêè ñêàçàòü, ÷òî ó ìåíÿ, ìîë, òîæå òîëüêî îäèí ôàéë îïèñàíèÿ... Òîæå, äà íå ñîâñåì - âû ðåøèëè ëèøü ïîëîâèíó çàäà÷è è òó íå ñàìûì êðàñèâûì ñïîñîáîì. Ó êàæäîãî ñâî¸ ÷óâñòâî ïðåêðàñíîãî è ÿ íå õî÷ó âàñ îáèäåòü, íî ìíå íåðåäêî ñìåøíî è ãðóñòíî ÷èòàòü âàøè áåçàïåëëÿöèîííûå ïîñòû, â êîòîðûõ, íàäî ïðèçíàòü, ÷àñòî ìíîãî ïðàâèëüíûõ ìûñëåé... Öèòàòà(arhiv6 @ Jul 8 2016, 19:54)  Íå èíòåðåñíî ñìîòðåòü. Ñâî¸ óæå äàâíî íàïèñàíî. Íî íà ïåðâûé âçãëÿä íå ïîíðàâèëàñü íîòàöèÿ ìàêðîñîâ. Âû íå ó÷èòûâàåòå íåêîòîðûå âåñüìà îïðàâäàííûå ðåêîìåíäàöèè, êàê òî: åñëè ïîâåäåíèå ìàêðîñà íåîòëè÷èìî îò ïîâåäåíèÿ ôóíêöèè, ýòîò ìàêðîñ äîëæåí áûòü íàçâàí ñ èñïîëüçîâàíèåì ñòðî÷íûõ, à íå ÇÀÃËÀÂÍÛÕ áóêâ, îò êîòîðûõ ðÿáèò â ãëàçàõ. Ïëþñ âûáðàíû íå ñàìûå óäà÷íûå èìåíà HIGH, LOW - H,L äîñòàòî÷íî íà 100%. PIN_CONFIGURATION - î÷óìåòü êàê ìíîãî áóêâ!!! pin_init, pin_setup, pin_cfg - ýòî ñèíîíèìû íå ñêðûâàþùèå ñìûñëà ïðîèñõîäÿùåãî.  ýòîì êëþ÷å, äà è äðóãèõ íàïðàâëåíèÿõ åñòü êóäà ðàñòè... ×òîáû ñòàòü ïðîôè íèêîãäà íå ñòîèò ïðåíåáðåãàòü ÷òåíèåì ïðîôåññèîíàëüíîé ëèòåðàòóðû - òàì çà÷àñòóþ åñòü ÷åìó ïîó÷èòüñÿ. À ïðî òî, êàê ïðàâèëüíî âûáèðàòü íàçâàíèÿ ïåðåìåííûì è ôóíêöèÿì, âîîáùå â áóêâàðÿõ ïèøóò))) 2ALL: ïåðå÷èòàéòå íàçâàíèå ýòîãî òîïèêà åù¸ ðàç, ïðåæäå ÷åì ñþäà íàïèñàòü.
--------------------
“Áóäüòå âíèìàòåëüíû ê ñâîèì ìûñëÿì - îíè íà÷àëî ïîñòóïêîâ” (Ëàî-Öçû)
|
|
|
|
|
Jul 10 2016, 08:31
|

Ally
     
Ãðóïïà: Ìîäåðàòîðû
Ñîîáùåíèé: 6 232
Ðåãèñòðàöèÿ: 19-01-05
Ïîëüçîâàòåëü ¹: 2 050

|
Öèòàòà(demiurg_spb @ Jul 8 2016, 23:00)  Íå óâèäåë ó âàñ, ãäå îïðåäåëÿåòñÿ àêòèâíûé óðîâåíü H èëè L è òî, ÷òî âû ïðèâåëè, íå âûãëÿäèò äëÿ ìåíÿ ðàçóìíûì. ÃÎÐÀÇÄÎ ðàçóìíåå â îäíîé ñòðîêå çàäåôàéíèòü âñ¸ ñðàçó: è íîìåð ïèíà, è ïîðò, è àêòèâíûé óðîâåíü, è âñå ðåæèìû ðàáîòû ïîðòà, è ðåìàïû, à íå ðàçìàçûâàòü ñîïëè ïî êîäó. Ïðèìåð äëÿ STM32F37x Êîä #define PIN_BTN_USER A,0,H,REMAP_NONE,INPUT_PULL_DOWN,SPEED_NONE #define PIN_UART2_RTS A,1,H,REMAP_NONE,OUTPUT_PUSH_PULL,SPEED_2MHZ // # software_RTS È ýòîãî ñëèøêîì ìàëî! Åñëè îïèñûâàòü òî âñ¸, âêëþ÷àÿ âñå àëüòåðíàòèâíûå ôóíêöèè. Âîò òàê: Êîä // gpio port num irqc lock mux DSE SRE ODE PFE PUPD dir init { PTA_BASE_PTR, PORTA_BASE_PTR, 0, IRQ_DIS, 0, ALT7, DSE_HI, FAST_SLEW, OD_DIS, PFE_DIS, PUPD_DIS, GP_INP, 0 }, // *JTCLK/SWC 50 # PTA0 # Default=(JTAG_TCLK/SWD_CLK/EZP_CLK) ALT0=(TSI0_CH1) ALT1=(PTA0) ALT2=(UART0_CTS_b/UART0_COL_b) ALT3=(FTM0_CH5) ALT4=() ALT5=(LPUART0_CTS_b) ALT6=() ALT7=(JTAG_TCLK/SWD_CLK) EZPort=(EZP_CLK) { PTA_BASE_PTR, PORTA_BASE_PTR, 1, IRQ_DIS, 0, GPIO, DSE_HI, FAST_SLEW, OD_DIS, PFE_DIS, PUPD_DIS, GP_OUT, 1 }, // *JTDI (LED) 51 # PTA1 # Default=(JTAG_TDI/EZP_DI) ALT0=(TSI0_CH2) ALT1=(PTA1) ALT2=(UART0_RX) ALT3=(FTM0_CH6) ALT4=(I2C3_SDA) ALT5=(LPUART0_RX) ALT6=() ALT7=(JTAG_TDI) EZPort=(EZP_DI) { PTA_BASE_PTR, PORTA_BASE_PTR, 2, IRQ_DIS, 0, ALT7, DSE_HI, FAST_SLEW, OD_DIS, PFE_DIS, PUPD_DIS, GP_INP, 0 }, // *JTDO/SWO 52 # PTA2 # Default=(JTAG_TDO/TRACE_SWO/EZP_DO) ALT0=(TSI0_CH3) ALT1=(PTA2) ALT2=(UART0_TX) ALT3=(FTM0_CH7) ALT4=(I2C3_SCL) ALT5=(LPUART0_TX) ALT6=() ALT7=(JTAG_TDO/TRACE_SWO) EZPort=(EZP_DO) { PTA_BASE_PTR, PORTA_BASE_PTR, 3, IRQ_DIS, 0, ALT7, DSE_HI, FAST_SLEW, OD_DIS, PFE_DIS, PUPD_DIS, GP_INP, 0 }, // *JTMS/SWD 53 # PTA3 # Default=(JTAG_TMS/SWD_DIO) ALT0=(TSI0_CH4) ALT1=(PTA3) ALT2=(UART0_RTS_b) ALT3=(FTM0_CH0) ALT4=() ALT5=(LPUART0_RTS_b) ALT6=() ALT7=(JTAG_TMS/SWD_DIO) EZPort=() { PTA_BASE_PTR, PORTA_BASE_PTR, 4, IRQ_DIS, 0, GPIO, DSE_HI, FAST_SLEW, OD_DIS, PFE_DIS, PUPD_DIS, GP_INP, 0 }, // - 54 # PTA4/LLWU_P3 # Default=(NMI_b/EZP_CS_b) ALT0=(TSI0_CH5) ALT1=(PTA4/LLWU_P3) ALT2=() ALT3=(FTM0_CH1) ALT4=() ALT5=() ALT6=() ALT7=(NMI_b) EZPort=(EZP_CS_b) { PTA_BASE_PTR, PORTA_BASE_PTR, 5, IRQ_DIS, 0, GPIO, DSE_HI, FAST_SLEW, OD_DIS, PFE_DIS, PUPD_DIS, GP_INP, 0 }, // - 55 # PTA5 # Default=(DISABLED) ALT0=() ALT1=(PTA5) ALT2=(USB0_CLKIN) ALT3=(FTM0_CH2) ALT4=(RMII0_RXER/MII0_RXER) ALT5=(CMP2_OUT) ALT6=(I2S0_TX_BCLK) ALT7=(JTAG_TRST_b) EZPort=() { PTA_BASE_PTR, PORTA_BASE_PTR, 6, IRQ_DIS, 0, GPIO, DSE_HI, FAST_SLEW, OD_DIS, PFE_DIS, PUPD_DIS, GP_INP, 0 }, // - 58 # PTA6 # Default=(DISABLED) ALT0=() ALT1=(PTA6) ALT2=() ALT3=(FTM0_CH3) ALT4=() ALT5=(CLKOUT) ALT6=() ALT7=(TRACE_CLKOUT) EZPort=() { PTA_BASE_PTR, PORTA_BASE_PTR, 7, IRQ_DIS, 0, ALT0, DSE_HI, FAST_SLEW, OD_DIS, PFE_DIS, PUPD_DIS, GP_INP, 0 }, // INP8 59 # PTA7 # Default=(ADC0_SE10) ALT0=(ADC0_SE10) ALT1=(PTA7) ALT2=() ALT3=(FTM0_CH4) ALT4=() ALT5=(RMII0_MDIO/MII0_MDIO) ALT6=() ALT7=(TRACE_D3) EZPort=() Òóò íåìíîãî èñêàæåíî , ïîñêîëüêó âêëþ÷èëñÿ àâòîìàòè÷åñêèé ïåðåíîñ ñòðîê, íî ïðèíöèï ïîíÿòü ìîæíî. È ýòà òàáëèöà ãåíåðèòñÿ ïðÿìî èç PDF-à ìàíóàëà íà ÷èï.
|
|
|
|
|
Jul 10 2016, 12:23
|

íåîòÿãîù¸ííûé çëîì
     
Ãðóïïà: Ñâîé
Ñîîáùåíèé: 2 746
Ðåãèñòðàöèÿ: 31-01-08
Èç: Ñàíêò-Ïåòåðáóðã
Ïîëüçîâàòåëü ¹: 34 643

|
Öèòàòà(AlexandrY @ Jul 10 2016, 11:31)  È ýòîãî ñëèøêîì ìàëî! Åñëè îïèñûâàòü òî âñ¸, âêëþ÷àÿ âñå àëüòåðíàòèâíûå ôóíêöèè. Òóò íåìíîãî èñêàæåíî , ïîñêîëüêó âêëþ÷èëñÿ àâòîìàòè÷åñêèé ïåðåíîñ ñòðîê, íî ïðèíöèï ïîíÿòü ìîæíî. Âû ñþäà ëîêè è ïðåðûâàíèÿ åù¸ âûíåñëè - âïîëíå ñåáå... Ãëàâíîå, ÷òî ÷èòàåìî è ïîíÿòíî! Öèòàòà È ýòà òàáëèöà ãåíåðèòñÿ ïðÿìî èç PDF-à ìàíóàëà íà ÷èï. Âîò, à ýòî óæå èíòåðåñíî! Ïîäåëèòåñü ìåõàíèçìîì! Ñïåðâà ïîäóìàë, êàêîé àöêèé òðóä ïðîäåëàí ïî íàïèñàíèþ êàìåíòîâ, à ïîòîì óâèäåë, ÷òî è ýòî àâòîìàòèçèðîâàíî - ðåñïåêò! Öèòàòà(jcxz @ Jul 10 2016, 10:01)  Íå ïîíÿë âîïðîñ ïðî çàäàíèå àêòèâíîãî óðîâíÿ. Ïðè èíèöèàëèçàöèè ïèíà åìó çàäà¸òñÿ íåêîå íà÷àëüíîå çíà÷åíèå (åñëè ýòî GPIO-ïèí), à ïîòîì ìåíÿåòñÿ äðàéâåðîì ïî åãî àëãîðèòìó. Åñòü ó ìåíÿ ìàêðîñû óñòàíîâêè/ñáðîñà/... òåêóùåãî ñîñòîÿíèÿ GPIO-ïèíà. Îïèñûâàë èõ âûøå. Ñìûñë H è L â ìàêðîñàõ íå òîëüêî â çàäàíèè íà÷àëüíîãî ñîñòîÿíèÿ, íî è â òîì ÷òîáû íå äóìàòü î í¸ì âîâñå. pin_set(PIN_NAME); pin_clr(PIN_NAME); çàäàþò ñîñòîÿíèå íîãè íàïðÿìóþ áåç ó÷¸òà H è L, à pin_drive(PIN_NAME, VALUE) çàäà¸ò àêòèâíîå/ïàññèâíîå ñîñòîÿíèå c ó÷¸òîì àêòèâíîãî óðîâíÿ. Ïîýòîìó â êîäå ïðîãðàììû èëè êîäå äðàéâåðà ÿ èñïîëüçóþ òîëüêî pin_drive(PIN_NAME, VALUE), ÷òîáû íå äóìàòü î àêòèâíîì óðîâíå.  âàøèõ ìàêðîñàõ ÿâíî íàïðàøèâàåòñÿ òðåòèé àðãóìåíò: À,12,H èëè B,5,L
--------------------
“Áóäüòå âíèìàòåëüíû ê ñâîèì ìûñëÿì - îíè íà÷àëî ïîñòóïêîâ” (Ëàî-Öçû)
|
|
|
|
Ñîîáùåíèé â ýòîé òåìå
Atlantis- Íàó÷èòå êðàñèâî äåðãàòü íîæêàìè STM32 Jul 6 2016, 15:40 HardEgor Îïðåäåëèòå ïîíÿòíûå íàçâàíèÿ è èñïîëüçóéòå òîò æå ... Jul 6 2016, 15:57 Ñåðãåé Áîðù Ñèëüíî äîðàáîòàííûå íàïèëüíèêîì ìàêðîñû èìåíè Àñêî... Jul 6 2016, 16:01 ViKo Þçàþ ðåãèñòðû ñáðîñà è óñòàíîâêè, ìîæíî äàæå îäíîâ... Jul 6 2016, 16:49 x893 Öèòàòà(ViKo @ Jul 6 2016, 19:49) Þçàþ ðåã... Jul 6 2016, 18:12 РўРёРјСѓСЂ Ð ÑžÐ Â°Ð Ñ Îïðåäåëÿþ íîæêè è ïîðòû äåôàéíàìè:
Êîä#define IPNU... Jul 6 2016, 18:44 Dog Pawlowa Öèòàòà(Atlantis- @ Jul 6 2016, 18:40... Jul 6 2016, 19:12 turnon Âñÿ ïëàòà îïèñàíà â pinout.h è íàïðèìåð, ñâåòîäèîä... Jul 6 2016, 19:33 Atlantis- Öèòàòà(turnon @ Jul 6 2016, 22:33) Âñÿ ïë... Jul 7 2016, 07:35  turnon Öèòàòà(Atlantis- @ Jul 7 2016, 10:35... Jul 8 2016, 06:16 AlexandrY Öèòàòà(Atlantis- @ Jul 6 2016, 18:40... Jul 6 2016, 19:40 jcxz Öèòàòà(AlexandrY @ Jul 7 2016, 01:40) Íå ... Jul 7 2016, 08:27  demiurg_spb Âñåãäà è íà âñåõ àðõèòåêòóðàõ èñïîëüçóþ ðåøåíèå íà... Jul 7 2016, 10:30 x893 Íà ñõåìå èñïîëüçóþ íàçâàíèÿ âèäà SIGNAL_PIN - íàïð... Jul 6 2016, 20:37 ar__systems Öèòàòà(x893 @ Jul 6 2016, 16:37) Íà ñõåìå... Jul 7 2016, 02:12 esaulenka https://github.com/antongus/stm32tpl - ìàêðîñû Àñê... Jul 7 2016, 06:34 Atlantis- Ïî÷åìó òî íå ïîëó÷àåòñÿ ñäåëàòü ìàêðîñ
Êîä#define ... Jul 7 2016, 14:29 demiurg_spb Öèòàòà(Atlantis- @ Jul 7 2016, 17:29... Jul 7 2016, 15:11       jcxz Öèòàòà(demiurg_spb @ Jul 9 2016, 02:00) Ã... Jul 8 2016, 21:42        demiurg_spb Öèòàòà(jcxz @ Jul 9 2016, 00:42)
ÈÌÕÎ îä... Jul 8 2016, 22:00         jcxz Öèòàòà(demiurg_spb @ Jul 9 2016, 04:00) È... Jul 10 2016, 07:01        jcxz Öèòàòà(AlexandrY @ Jul 10 2016, 14:31) È ... Jul 10 2016, 09:05         AlexandrY Öèòàòà(jcxz @ Jul 10 2016, 12:05) Ñëèøêîì... Jul 10 2016, 09:50 arhiv6 Âîò ãîòîâàÿ ðåàëèçàöèÿ íà ìàêðîñàõ. Òàì îïèñàíèå +... Jul 8 2016, 16:54
1 ÷åë. ÷èòàþò ýòó òåìó (ãîñòåé: 1, ñêðûòûõ ïîëüçîâàòåëåé: 0)
Ïîëüçîâàòåëåé: 0
|
|
|