How do you decide whether to use an interrupt or polling for a specific hardware peripheral in embedded firmware?