- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: Einfach Eingang auf Ausgang schalten ?

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    33
    Beiträge
    995
    Anzeige

    E-Bike
    Also ich schreib das immer etwa anders:
    Code:
    #include <avr/io.h>
    
    uint8_t input = 0x00; 
    
    int main(void) 
    {
       DDRB = 0xff; //Port B = Ausgang
       DDRD = 0x00; //Port D = Eingang 
    	while (1)
    		{
    		input = PIND; //Port D in input einlesen
                    PORTB = input; //input auf Port B ausgeben 
    		}
    			
    	return 0;
    }
    meine methode ist eben etwas anders. ich hab aber schon methoden die deiner ähnlich sind gesehen. doch return 0; solltest mal versuchen das ist vieleicht die lösung ich weis zwar das eigendlich nicht notwendig sein soll aber ich schreibs immer dazu.

    und die interrupt.h brauchst du nicht da du keine interrupts nutzt.

    hast schon versucht das in der while schleife als if schleife zu schreiben?
    Code:
    	if (PIND!=0xFF)	
    			{ 
                PORTB==0xFF;
    			}
    			else
    			{
                PORTB==0x00;
    			}
    ist die hardware ok? hast schon probiert die led einfach mit PORTB = 0xff einzuschalten damit du weist das es wirklich geht?

    meine lösungen sind vieleicht nicht für jedeen wirklich die lösung (da ich ja die probleme umgehe.....) hauptsache es geht.

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    37
    Beiträge
    674
    Code:
       if (PIND=0xFF)   
             {
                PORTB=0xFF
             }
             else
             {
                PORTB=0x00
             }
    Der code dürfte aber auch nicht wie gewünscht funktionieren.
    1. bei PIND=0xFF findet nicht der wohl beabsichtigte Vergleich statt, sondern dem PIND wird der Wert 0xFF zugewiesen und da das dann ungleich 0 ist, ist das Ergebnis des "Vergleichs" immer true. das müsste fogliche so aussehen: PIND == 0xFF

    2. soll PIND wirklich mit 0xFF verglichen werden? dann müsstest du ja alle acht Taster an dem Port(sofern da acht dran sind) drücken, um die LEDs anzuschalten

    3. bei PORTB=0xFF und PORTB=0x00 fehlen die abschließenden Semikolons

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.03.2005
    Ort
    Villach
    Alter
    33
    Beiträge
    995
    also ich seh da keinen fehler

    Jetzt is es ok. (außer die taster an portb sind nicht auf high aktiv).

    grüße
    thomas

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    37
    Beiträge
    674
    außer die taster an portb sind nicht auf high aktiv
    Dazu kann ich nichts sagen, da ich kein STK500 habe.

  5. #15
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    53
    Beiträge
    2.236
    Ihr habt noch eine nette Kleinigkeit vergessen,
    Pullups an den Tastern einzuschalten...
    und die Variable muß nicht unbedingt global sein, mach sie in die main Funktion rein.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen