Problema decoupling un AtMega 328p/pu

Salve, ho un atmega 328 su una breadboard che controlla un ponte h che a sua volta controlla un motore (datasheet motore: https://www.arduino.cc/documents/datasheets/DCmotor.PDF). L'atmega è connessa ad alimentazione e massa e ha il cristallo esterno da 16000 Mh connesso a massa con due capacitori ceramici. Il motore è alimentato con una batteria da 9V. Lo sketch caricato accende e spegne un led ogni 2 secondi, e sempre ogni 2 secondi cambia direzione al motore controllato dal ponte h.
Il problema è il seguente: dopo un paio secondi il led rimane acceso e il motore gira solo più in una direzione (al posto di cambiarla ogni due secondi), ho sentito che è dovuto ai cali di tensione che disturbano l'integrato, ma ho provato numerose combinazioni di capacitori e non ho ancora risolto. Come potrei risolvere il problema? Quali capacitori dovrei comprare e dove posizionarli?
Grazie in anticipo!

Una batteria da 9V non è in grado di alimentare quel motore, inoltre non devi assolutamente invertire la direzione di marcia del motore senza prima averlo fatto fermare.

Strano, perché è il motore in dotazione nell'Arduino starter kit e lì ti dicono di alimentarlo a 9V, inoltre in un progetto dei 15 presenti nel libro è strutturato in modo tale che premendo un bottone si cambia direzione al motore...

Eternyt:
inoltre in un progetto dei 15 presenti nel libro è strutturato in modo tale che premendo un bottone si cambia direzione al motore...

Indipendentemente da quello che trovi scritto nel libro dello starter kit sono due tavanate galattiche sia alimentare quel motore con una batteria a 9V sia fargli invertire il senso di marcia senza prima farlo fermare.

Ma sono questi due fattori che generano l'errore citato nel primo post?

Non dici come piloti il motore che funziona normalmente a 6V assorbendo a vuoto 90mA ma sotto carico anche 2.6A.

Se poi lo alimenti a 9V la corrente aumenta di circa il 50%.

Pensa che una batteria da 9V carica ha una capacità massima di 250mAh, perciò al massimo arriva ad erogare 500mA e per pochissimo tempo.

lo piloto con un ponte h a sua volta controllato dall'AtMega, ma non comprendo il "malfunzionamento" che non fa più cambiare direzione al motore e neanche accendere e spegnere il led.

Quello probabilmente succede perche' la MCU si "pianta" a causa dei picchi di corrente e dei disturbi generati dal motore fatto funzionare in quel modo ...

Ma al di la dell'errore grossolano nell'alimentare il motore, come posso rimuovere questi picchi di corrente? Perche se ci attacco un motore da 9V alimentato correttamente il problema rimane. Qualche consiglio?