Ernsthafte Frage

Gast #144539
Ich habe mal endlich etwas Zeit und beschäftige mich weiter mit meinem
alten Projekt der Festplattenansteuerung mit Atmega32.
Um einen Einstieg zu finden lese ich mit dem Commando (Identify Drive)
meine Festplattenparameter aus, soweit alles Super, bis auf dass die
richtigen Festplattenparameter aus der Ausgabe alle um 1 Word
verschoben sind.

Beispiel:

Word Nr: 000     00208   0b0000000011010000
Word Nr: 001     01114   0b0000010001011010
Word Nr: 002     16383   0b0011111111111111 // Anzahl Zylinder

      '                                             sollte eigentlich
in                                                              '
                                       der Word Nr.2 zu finden  '
                                        sein
Word Nr: 003     00000   0b0000000000000000
Word Nr: 004     00016   0b0000000000010000 // Köpfe nach Datenblatt '
'                                              in word Nr.3
Word Nr: 005     00000   0b0000000000000000
Word Nr: 006     00000   0b0000000000000000
Word Nr: 007     00063   0b0000000000111111 //sektoren richtig wäre '
    '                                             word Nr. 6
Word Nr: 008     00000   0b0000000000000000
Word Nr: 009     00000   0b0000000000000000
Word Nr: 010     00000   0b0000000000000000
Word Nr: 011     08224   0b0010000000100000

Habe ich die IDE Spezifikation falsch verstanden, oder mache ich etwas
falsch.

Hier mein Programm Listing zum auslesen (Benutze WinAvr)
void IdentifyDrive(void)
{
uint16_t dummy;
//uint16_t * ptr_eeprom = 0;
uint16_t * ptr_eeprom = 0;
uint16_t temp;
WaitNBusy(0);

SetMasterActive();
SetRegAddr(COMMAND_REG); // command Register
WriteRegister(0xec);     // identify Drive Opcode
delay2us();
SetRegAddr(DATA_REG);
eeprom_busy_wait();
  for(dummy = 0; dummy < 256 ;dummy++)
  {
  delay2us();
  eeprom_busy_wait();
  eeprom_write_word(ptr_eeprom,ReadRegister() );
  ptr_eeprom = ptr_eeprom + 1;
  }
sendstring("\n Fertig Informationen auslesen");  // Debug
};


Wäre froh, wenn ich endlich Klarheit hätte, warum die ausgelesenen
Daten um 1 Word verschoben sind.

Gruß Tobi

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.