Moin, ich möchte einen 12 Bit-AD-Wandler über die SPI-Schnittstelle des Atmega16 oder des Atmega32 ansprechen. Bei meinem Programm ergibt die Ausgabe allerdings immer 0, auch wenn ich Spannung anlege. Ein Problem ist sicherlich, dass die Kommunikation (SPDR) nur 8 Bit lang ist aber "das Ergebnis" eigentlich 12 Bit lang. Leider weiss ich nicht wie ich das ändern kann, allerdings würde mir notfalls auch 8 Bit Auflösung reichen. Leider weiss ich auch nicht genau was mit "gleichzeitig" beim Datenaustausch zwischen Master und Slave gemeint ist, ist das ablesen des SPDR nach meiner Anfrage überhaupt richtig oder muss man "gleichzeitig" ablesen?! Da ich nicht weiss wie man eine zweite Datei anhängt werde ich das Anschlussbild in einer "Antwort" schreiben. Vielen Dank Matthias
Entschuldigt bitte nocheinmal, ich habe die Angabe der Pins vergessen, also #define DD_MOSI PB5 #define DD_MISO PB6 #define DD_SCK PB7 und ausserdem PB4 als SS Also genau wie im Atmega 16 Datenblatt Danke Matthias
Das Datenblatt des MAX186 sollte in der Lage sein, zu dem Thema "Auslesen der Daten" etwas beizutragen. Bei den mir bekannten Bausteinen (z.B. TLC2543) muss man einfach 2 mal 8 Bit direkt nacheinander auslesen um alle 12 Bit (wahlweise links- oder rechtsbündig) zu erhalten. Dieter
Moin Dieter, ich habe nun die library so verändert, dass ich zweimal hintereinander SPDR abrufe und dann die Daten in einer Variable zusammenführe, allerdings funktioniert es immer nocht nicht!?!? Ich hänge die veränderte Datei nocheinmal an. Danke Matthias
Hallo Matthias, ich stamme nun nicht aus dem Atmel AVR Lager und hab von C nur rudimentäre Ahnung, aber das DDRB = (1 << DD_MOSI) | (1 << DD_SCK); DDRB = (1 << PB4); //SS als Augang setzen ist meiner Meinung nach leicht daneben. Mit der zweiten Zeile werden nämlich MOSI und SCK wieder von Ausgang auf Eingang umgeschaltet. Es müsste nach meinem Verständnis heißen DDRB = (1 << DD_MOSI) | (1 << DD_SCK) | (1 << PB4); dann sind alle 3 Pins als Ausgang geschaltet. Vielleicht war das schon alles Gruß Dieter
Hi ich habe mal noch eine frage zum MAX186. ich möchte meine heizungssteuerung mit dem programm profilab30 realisieren. dazu brauche ich 14 analoge eingäne. nun meine frage, kann man den schaltkreis über den seriellen oder parallelen port direkt ansteuern? wenn nicht wie ist es am einfachsten zu realisieren? für brauchbare tips wäre ich euch dankbar Thino
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.