Gast
#45725
Salut, seit gestern abend quält mich folgendes undurchschaubares Problem: Ich hab am Mega8 ein 595 Shiftregister. MOSI, SCLK beschaltet, als ST_CP lege ich /SS an, was als output definiert ist. Verwende ich das Hardware-SPI, passiert folgendes: Die Daten kommen soweit an, nur daß alles links von einer "Null" abgeschnitten wird. Beispiele: Ich sende Es kommt an 01010101 00000001 10101010 00000000 00001111 00001111 11001111 00001111 Dieses Verhalten kann ich überhaupt nicht nachvollziehen. Am 595 sind alle Pins beschaltet, außer Q7' (weil output). Die /RESET-Leitungen sind miteinander verbunden, mit 10k-Pullup. Am Aufbau scheint es auch gar nicht zu liegen, denn setze ich die Leitungen manuell, dann funktioniert auch alles wunderbar. Ich habe die SPI-Routine sowohl in C, als auch in ASM getestet, beide Male dasselbe Ergebnis. Auch nen zweiten Mega8 hab ich schon getestet. Aber es bleibt dabei: Manuell geht es wunderbar (also Hardware ist ok), aber per Hardware-SPI schneidet er die Daten weg. Es kommen nur dann die gleichen Daten raus, wenn vom LSB her nur Einsen stehen. Ich hab das ganze im SPI Mode 0 und Mode 3 probiert... kommt dasselbe bei raus. Sonst hab ich mich an die Beispiele im Datenblatt gehalten. Hat jemand von Euch eine Ahnung, was da faul sein könnte? Ich kann die Listings bei Bedarf anhängen, aber die sind so trivial, daß es wohl nicht lohnt. Und wie gesagt, kein Unterschied zwischen C und ASM (in letzterem fühl ich mich sicherer ;). Danke für Hilfe, Tips und Hinweise! Mark