Gast
#111926
Hallo, ich beschreibe erstmal mein Projekt: Ich will einen ATtiny zur Analogwandlung verwenden da dieser ja 11 Kanäle für den ADC hat, naja einer fällt durch den Resetpin wieder weg also hätte ich 10 ADC Kanäle und 4 normale IO Pins zur Verfügung. Der ATtiny soll fortlaufend die Kanäle umwandeln dabei werden je nach Priorität manche Kanäle z.b. nur bei jedem 10ten druchlauf gewandelt damit die wichtigen Kanäle schneller aktualisiert werden, die Werte sollen dann in einzelne Register abgelegt werden und bei einer Anfrage eines ATmega8535 ausgegeben werden. Für diese Anfrage und Ausgabe habe ich nur 4 Pins zu Verfügung. Es soll eine möglichst schnelle und einfache Möglichkeit gefunden werden die Daten zu übertragen. Ich habe mir gedacht so vorzugehen. Der Atmega sendet seine Abfrage 4bit für die Kanalauswahl an 2 Pins des ATTinys also 1001 wird in 2 Schritten übertragen z.b. 10 und dann nochmal 01, damit der ATTiny weiß welche Werte gewünscht sind. Dieser hat jetzt noch 2 Pins übrig. Die einfachste Lösung für mich wäre eine Schieberegister zu verwenden in welches die 8Bit Daten reingeschoben werden und bei einen High Befehl an 8 Pins des ATMega's ausgegeben. Habe ich die Funktion des Schieberegisters richtig verstanden oder braucht dieser mehr als nur einen Startbefehl, den ich durch den letzten Pin auslösen könnte. Ich favorisiere diese Lösung weil sie mit sehr wenig Programmieraufwand zu verwirklichen wäre. Und die Übertragung auch sehr schnell geht, wenn man das Schieberegister mit z.b. 125nS pro Bit betreiben kann dann wären das ca 12x125nSek von der seriellen Eingabe bis zur paralellen Ausgabe des Schieberegisters und der ATmega kann den Port dann auch sehr schnell und sehr einfach zur Weiterverarbeitung einlesen.