portB und portE an ATMEGA64

Gast #860176
Lesenswert?

ich möchte diese beiden ports als Ausgänge für die Ansteuerung externer 
'Geräte' (Steuerung von Multiplexern) benutzen. Die Pins des ports B 
scheinen durch Zweitfunktionen (ISP) belegt zu sein. Kann ich diesen 
Port wirklich nicht benutzen? (Ich möchte den ATMEGA immer noch über 
AVR910/911 und ISP programmieren können.
Warum das Ansteuern von Port E nicht funktioniert ist mir ein Rätsel, da 
es laut Datenblatt ja keine blockierenden Zweitfkt gibt.
?
Gast #860219
Lesenswert?

Das mit PDO/PDI hab ich bereits bemerkt. An PORTB liegen aber noch SS, 
SCK und MOSI,MISO. Jedenfalls kann ich im Moment weder B noch E als 
Output benutzen. Wollte testweise 0x02 an B einstellen, d.h. PB1=1 alle 
anderen =0. Tatsächlich aber ist PB0=1 und  PB3=1.
Ähnlich an PORTE: will im Programm 0x08 ausgeben, tatsächlich aber sind 
alle Pins auf Low.

Compatibility-fuse hab ich gelöscht.
Gast #860257
Lesenswert?

hab grad eine interessante Entdeckung gemacht:
Es ist wohl ein anderer Fehler im Programm:

setze ich das gewünschte bei der Initialisierung (// Setzen bei INIT der 
PORTS), so funktioniert alles prächtig, will ich die Ports aber weiter 
'unten' im Programm setzen (//WOLLTE HIER SETZEN), so gehts nicht.
Ich bleib wohl irgendwo dazwischen stecken? Sehe den Fehler allerdings 
nicht.

  //DDRA=0xFF;  PORTA=0x00;
  DDRB=0xff;  PORTB=0x02;  // Setzen bei INIT der PORTS
  //PORTC
  //PORTD
  DDRE=0xff;  PORTE=0x08;       // Setzen bei INIT der PORTS
  DDRF=0xff; PORTF=0x00;
  //PORTG
  wdt_enable(WDTO_2S);
  //wdt_disable();


  // Timers
  timer.busy1=0;timer.busy3=0;
  // 16-bit Timer1&3 :: Weichen

  TCCR1A=0x00;
  TCCR1B=0x00;    //Timer gestoppt
  TIMSK=0x10;
  TCCR3A=0x00;
  TCCR3B=0x00;

  sei();

  wdt_reset();
  lcd_init(LCD_DISP_ON);
  lcd_data(LCD_FUNCTION_4BIT_2LINES);
  lcd_clrscr();
  lcd_home();
  lcd_puts("Willkommen");

  wdt_reset();

  //setSP(&sp[0],0);
  //switchSP();
  PORTE=0x08;                  //WOLLTE HIER SETZEN
  PORTB=0x02;                  //WOLLTE HIER SETZEN
Gast #860288
Lesenswert?

hat sich erledigt, der einzige Fehler war, dass ich das Display an PORTF 
nicht verbunden hatte (weil ich es eigentlich nicht benötigte), die 
Displayansteuerungsfunktion blöderweise aber eine Antwort des Displays 
erwartet. :-)

Vielen Dank für deine Hilfe!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren