mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Am Ausgang nur 0,5V bei log. 1


Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein mega8 gibt mir an den Ausgängen von Portb bei einer logischen 1 nur
ca. 0,5V. Und PinB4 ist immer high bei angeschlossenem Parallelport...

Wäre cool wenn mir jemand helfen könnte

Habe folgendes Programm geschrieben:

#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/delay.h>

float del(int x);
int speed(int y);
int main(void){
int delay=50;
int lauflicht;
lauflicht=0x01;
}
  while(1){
    while(lauflicht<0x20){
      lauflicht=(lauflicht<<1);
      PORTB=lauflicht;
      _delay_ms(del(lauflicht)*delay);
      delay=speed(delay);
    }
    while(lauflicht>0x01){
      lauflicht=(lauflicht>>1);
      PORTB=lauflicht;
      _delay_ms(del(lauflicht)*delay);
      delay=speed(delay);
    }
  }
}
float del(int x){
  if (x==0x20 || x==0x01){
    return 0.33;
    }
  if (x==0x04 || x==0x08){
    return 1;
    }
  if (x==0x02 || x==0x10){
    return 0.66;
    }
  return 0;
}
int speed(int y){
  DDRD  = 0x00; /* alle Pins von Port D als Eingang */
  PORTD = 0xff; /* interne Pull-Ups an allen Port-Pins aktivieren */
  if (!( PIND & (1<<PIND2)) ) {
    if(y>0){
      y=y-5;
      _delay_ms(100);
      return y;
    }
  }
  if(y<=0){
    return 100;
  }
  return y;
}

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wo ist deine Main?

Autor: Anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nach den Funktionsdeklarationen del und speed ...

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, gefunden.
sehr schlechter Programmierstil...
Ausserdem ist da eine { zuviel.
Mach doch erst die Port-Initialisierung (in der main()).
Vielleicht solltest du auch dem PORTB sagen, dass er ein Ausgang ist...
DDRB = 0xFF...
Und lass dann deine Schleife laufen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.