Gast
#61085
Hallo! Ich hoffe ihr könnt mir bei diesem Problem helfen. Ich habe zwar schonmal eine Frage zu diesem Thema gestellt, es kam bis jetz aber immer noch nicht das richtige heraus... Die Ata-spec hab ich gelesen(das notwendigste(timing busycheck, register usw...)) Zum Test versuche ich, die Drive-info zu lesen. Dazu resete ich erstmals die Harddisk. Danach frage ich das busy flag ab, bis es low ist. Dann schreibe ich den befehl &90 (device diagnostic) in das befehlsregister. Danach frage ich das busy flag ab, bis es low ist. Dann schreibe ich den befehl &ec(identify device) in das befehlsregister. Danach lese ich wieder das Statusregister, bis busy low ist und warte bis drq high ist. Wenn dies der Fall ist, schalte ich ins Datenregister, und lese dieses 512 mal aus.(1 Sektor) Doch ich bekomme nur Wirre zeichen, und vorallem jedesmal andere. Doch der Zugriff funktioniert garantiert. Genau in dem Moment, wo ich das Drive-info command schreibe, 'gurgelt' die Festplatte und zwar jedesmal, wenn ich dies versuche. Ich hab im Anhang das Bascom Programm dran. An portc hängen die datenbits 0...7 an pa.0 dior an pa.1 diow an pa.2 ad0 an pa.3 ad1 an pa.4 ad2 an pa.5 reset Ich weiss das einige der Signal low aktiv sind.(dior, diow, reset) Ich habe die Datenbits 8..15 nicht angeschlossen, sondern gegen low geschaltet. Dies weil alle Register über 8 bit angesprochen wird und ich kein fat filesystem proggen will. Daher brauche ich die restlichen 8 bits nicht. Ich verwende ausserdem einen Atmega 16 Desshalb nun meine Frage : Warum geht das nicht? Ich habe alles geprüft, auf kurzschlüsse zwischen den leitungen, ebenfalls mit dem durchgangsprüfer alle Leitungen gecheckt. Auch das Kabel ist nur etwa 20 cm lang. Nik