Hallo Spezialisten,
in meinem aktuellen Projekt verwende ich einen xmega32A4U. Bei dem sind 4 pins vom PortE herausgeführt. Genau diese pins verwende ich als output für steppertreiber, clk und dir. Im Programm brauche ich 2 timer, derzeit wird tcc0 und tcc1 verwendet. Geht gut.
Jetzt hab' ich mir gedacht, wenn ich den PortE schon komplett als Ausgang verwende, könnte ich auch die timer vom portE verwenden. Dann geht nix mehr. Jetzt die Frage: Warum
Ich dachte, jeder port hat timer und die pins können! als pins für diese timer verwendet werden. Das ich die pins nicht für normale input/output-Dinge verwenden kann, wenn ich den timer nur im overflow-interrupt betreibe, finde ich jetzt bisschen unpraktisch. Ist das wirklich so, oder mach ich wiedermal einen Fehler?
das geht
Alles anzeigen
so geht's nicht mehr
Alles anzeigen
Im Datenblatt erkenne ich keinen Unterschied bei den ports
xmega-ports.PNG
in meinem aktuellen Projekt verwende ich einen xmega32A4U. Bei dem sind 4 pins vom PortE herausgeführt. Genau diese pins verwende ich als output für steppertreiber, clk und dir. Im Programm brauche ich 2 timer, derzeit wird tcc0 und tcc1 verwendet. Geht gut.
Jetzt hab' ich mir gedacht, wenn ich den PortE schon komplett als Ausgang verwende, könnte ich auch die timer vom portE verwenden. Dann geht nix mehr. Jetzt die Frage: Warum
Ich dachte, jeder port hat timer und die pins können! als pins für diese timer verwendet werden. Das ich die pins nicht für normale input/output-Dinge verwenden kann, wenn ich den timer nur im overflow-interrupt betreibe, finde ich jetzt bisschen unpraktisch. Ist das wirklich so, oder mach ich wiedermal einen Fehler?
das geht
BASCOM-Quellcode
- 'ports
- Config Pina.0 = Input 'Starttaster
- Porta.0 = 1 'pullup
- Config Porte.0 = Output 'step Sonnenrad
- Config Porte.1 = Output 'dir Sonnenrad
- Config Porte.2 = Output 'step Planetenrad
- Config Porte.3 = Output 'dir Planetenrad
- ...
- 'timer
- Config Priority = Roundrobin , Vector = Application , Med = Enabled
- 'Takt für steps
- 'steperzeugung 'Sonne'
- Config Tcc0 = Normal , Prescale = 8
- On Tcc0_ovf Steppertakt_s_isr
- Enable Tcc0_ovf
- 'steperzeugung 'Planet'
- Config Tcc1 = Normal , Prescale = 8
- On Tcc1_ovf Steppertakt_p_isr
- Enable Tcc1_ovf
- Enable Interrupts
so geht's nicht mehr
BASCOM-Quellcode
- 'ports
- Config Pina.0 = Input 'Starttaster
- Porta.0 = 1 'pullup
- Config Porte.0 = Output 'step Sonnenrad
- Config Porte.1 = Output 'dir Sonnenrad
- Config Porte.2 = Output 'step Planetenrad
- Config Porte.3 = Output 'dir Planetenrad
- ...
- 'timer
- Config Priority = Roundrobin , Vector = Application , Med = Enabled
- 'Takt für steps
- 'steperzeugung 'Sonne'
- Config Tce0 = Normal , Prescale = 8
- On Tce0_ovf Steppertakt_s_isr
- Enable Tce0_ovf
- 'steperzeugung 'Planet'
- Config Tce1 = Normal , Prescale = 8
- On Tce1_ovf Steppertakt_p_isr
- Enable Tce1_ovf
- Enable Interrupts
xmega-ports.PNG
Raum für Notizen
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------