claudia1989
21.02.2011, 03:25
Port erweiterung -- Parallele Ausgabe--avr gcc
Hey Liebe Elek'er,
bin wieder da und ich versuche gerade ein absolut Drehgeber mit
meinem Atmega88 auszulesen. Habe ein c code beim googlen gefunden (http://www.posital.eu/en/products/POSITAL/AbsoluteEncoders_Context/AbsoluteEncoders_Context_Technology_SSI_AppNote.pd f) und kann schon die werte über Usart auf my pc anzeigen (mit der spi_read methode siehe source code.).
jetzt möchte ich aber die daten (uint16_t u16singleturn) paralllel
ausgeben am Pin (Port) die übrig sind (PC0...5 , PD3...7,usw...)oder am
zwei 74HC595 .
Meine Fragen:
1)( Methode Spi_read () siehe source code). wie kann ich zum Bspl.
eine uint8_t variable am PC0...5 und PD4,5 ausgeben. (mit MSB am PC0 und
LSB am PD5 oder umgekehr) ?
DDRC = (1 << DDC0) | (1 << DDC1) | (1 << DDC2) | (1 << DDC3) | (1
<<DDC4)| (1 <<DDC5); //oder DDRC=0x3F;
DDRD = (1<<DDD4) | (1<<DDD5) ;
und dann ?
2)(Methode pinToggleReadSSI( void )) .für die Ausgabe mit zwei 74*595.
ich nehme an RCK liegt am PB3, wie mache ich ein 010 am PB3 um die
daten am Latch ausgang zu haben. so?:
DDRB = ( 1 << DDB3);
PORTB=(1<<PB3);
PORTB=~(1<<PB3);
PORTB=(1<<PB3);
?
3)(und falls Ihr etwas zeit habt ,würde mich sehr freuen). Für die
Ansteuerung via Software
hier(http://www.rn-wissen.de/index.php/Portexpander_am_AVR#Ohne_SPI-Hardware)
,
wie würde dann serpa.c ausehen mit zwei 74*595 (also uint16_t u16data
ist auszugeben) und:
PC0->SCK
PC1->RCK
PC2->SER
?
Schaltung und Software zum Auslesen des Absolut drehgeber habe ich hier
gefunden (pdf):
http://www.posital.eu/en/products/POSITAL/AbsoluteEncoders_Context/AbsoluteEncoders_Context_Technology_SSI_AppNote.pd f
(bin etwa verwirrt mit dem avr gcc und Portexpander tuto )
danke im voraus
Hey Liebe Elek'er,
bin wieder da und ich versuche gerade ein absolut Drehgeber mit
meinem Atmega88 auszulesen. Habe ein c code beim googlen gefunden (http://www.posital.eu/en/products/POSITAL/AbsoluteEncoders_Context/AbsoluteEncoders_Context_Technology_SSI_AppNote.pd f) und kann schon die werte über Usart auf my pc anzeigen (mit der spi_read methode siehe source code.).
jetzt möchte ich aber die daten (uint16_t u16singleturn) paralllel
ausgeben am Pin (Port) die übrig sind (PC0...5 , PD3...7,usw...)oder am
zwei 74HC595 .
Meine Fragen:
1)( Methode Spi_read () siehe source code). wie kann ich zum Bspl.
eine uint8_t variable am PC0...5 und PD4,5 ausgeben. (mit MSB am PC0 und
LSB am PD5 oder umgekehr) ?
DDRC = (1 << DDC0) | (1 << DDC1) | (1 << DDC2) | (1 << DDC3) | (1
<<DDC4)| (1 <<DDC5); //oder DDRC=0x3F;
DDRD = (1<<DDD4) | (1<<DDD5) ;
und dann ?
2)(Methode pinToggleReadSSI( void )) .für die Ausgabe mit zwei 74*595.
ich nehme an RCK liegt am PB3, wie mache ich ein 010 am PB3 um die
daten am Latch ausgang zu haben. so?:
DDRB = ( 1 << DDB3);
PORTB=(1<<PB3);
PORTB=~(1<<PB3);
PORTB=(1<<PB3);
?
3)(und falls Ihr etwas zeit habt ,würde mich sehr freuen). Für die
Ansteuerung via Software
hier(http://www.rn-wissen.de/index.php/Portexpander_am_AVR#Ohne_SPI-Hardware)
,
wie würde dann serpa.c ausehen mit zwei 74*595 (also uint16_t u16data
ist auszugeben) und:
PC0->SCK
PC1->RCK
PC2->SER
?
Schaltung und Software zum Auslesen des Absolut drehgeber habe ich hier
gefunden (pdf):
http://www.posital.eu/en/products/POSITAL/AbsoluteEncoders_Context/AbsoluteEncoders_Context_Technology_SSI_AppNote.pd f
(bin etwa verwirrt mit dem avr gcc und Portexpander tuto )
danke im voraus