...wichtige Unterschiede (wenn erforderlich, Korrektur erwünscht):
- Atmels sind offenbar 16-bit-Controller...
Die normalen AVR haben alle einen 8 Bit breiten Datenbus. Der Adressbus besitzt je nach Controller 10 bis 18 Bit "Bandbreite".
Entweder hab ich grad den Link nicht gefunden oder Atmel hat die Produktion der 16Bit-µC auslaufen lassen. Neben den 32 Bit Controllern der ARM-Reihe gibts noch die AVR32.
Mit denen brauchen wir uns aber meiner Meinung nach nicht auseinandersetzen. Das wär etwa so als wenn man den Triebwerk aus nem Düsenjet in nen Trabbi schraubt.
Wenn Port B eingang sein soll, braucht eigendlich nur der Pin von port B gelesen werden. (...)
Wie gesagt, ich arbeite ausschließlich in Assembler, da weiß ich nicht, wie man enzelne bits in Basic oder C ansprechen kann...
Geht in Basic zumindest unter BASCOM so:
Portb = Input
oder
Portb = Output
oder
Portb=&B00001111 'hier sind Pinb.0 bis Pinb.3 Aus- und die Pinb.4 bis Pinb.7 Eingänge
oder
Portb=&H0F 'in Hexadezimal geschrieben und wie eine Zeile weiter oben Pins 0 bis 3 sind Ausgänge....
oder
Portb = 16 'analog zu Portb=&B... und Portb=&H...
Man kann auch schreiben:
Pinb.0 = 1 'Ausgang
Pinb.0 = 0 'Eingang
Der Text hinter dem Apostroph wird vom Compiler ignoriert - er dient nur zur Trennung zwischen Befehlen und eigenen Stichpunkten die man sich in das Programm tippt um die Übersicht zu behalten.
...
- Welche Auflösung nehmt Ihr für die Impulsbreite - 8bit.
8 Bit gehen in Ordnung, 16 sind aber besser weil feiner. Ich hab's mal mit ner Mischung aus Hardware-PWM und Software ausprobiert die alle 2ms einen Interrupt über das Overflowflag des Timer0 (OVF0) auslöst und einen Zähler um 1 incrementiert damit ich nicht großartig rumfummeln musste.
Das bot mir den Vorteil das ich den anderen Zähler noch frei zur Verfügung habe und allein durch die Internen Takteiler unter Verwendung eines 2MHz oder eines 16MHz-Quarzes auf die gewünschten 50Hz Wiederholfrequenz komme.
Bin aber noch nicht ganz zufrieden weil ich nach ner Lösung suche die Hardware mit dem Timer0 auf 10 bis 12 Bit zu interpolieren. Technisch
muss es gehen - ich hab allerdings noch mit der Soft Probleme.
So langsam kommen wir (ich) der Sache näher.
Nur was das Beschreiben angeht, es bringt mich zur Verzweiflung. Stecker dran und ab ist ja ok, aber zum Beschreiben muss ich noch dran denken dass PB5 - PB7 nicht auf Masse liegen oder mein Testboard abgeschaltet ist...
Entkoppel Dein Testboard doch einfach durch Widerstände vom Controller. Zwischen den Widerständen und dem µC befinden sich dann die Kreuzungspunkte zu MOSI, MISO und SCK.