Hot answers tagged

3

I fixed uint16_t page to uint32_t page and it worked. Thanks! void AT45dbxx_ErasePage(uint32_t page) { page = page << AT45dbxx.Shift; // AT45dbxx.Shift = 9 For 264 byte per page AT45dbxx_Resume(); AT45dbxx_WaitBusy(); HAL_GPIO_WritePin(_45DBXX_CS_GPIO,_45DBXX_CS_PIN,GPIO_PIN_RESET); AT45dbxx_Spi(AT45DB_PGERASE); // CMD 0x81 ...


1

Configuration commands have to be repeated twice within 100ms without any other command in between before the control gear will accept them. This is done as a way to avoid corruption of the signal or spurious messages accidentally changing a configuration. DALI frames are Manchester encoded which prevents single bit flips of the frame causing problematic ...


1

You have to setup and Reset your Watchdog Timer in one go. If you setup and reset separately then it keeps on resetting. #include "msp.h" void main(void) { WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD; // stop watchdog timer //RGB Leds P2->DIR = BIT2 | BIT1 | BIT0; P2->OUT &= ~(BIT2 | BIT1 | BIT0); //Startup Sequence P2->OUT = ...


1

This answer is intended to augment the currently accepted answer with a concrete example in two variants, and provide some specific design advice. Polynomial approximation is often a superior approach if the desired accuracy is fairly high and there is a hardware multiplier available. Table sizes tend to increase rapidly even when interpolation (e.g. linear, ...


Only top voted, non community-wiki answers of a minimum length are eligible