Forum: Mikrocontroller und Digitale Elektronik Bits bzw Lampen an


von Pfeiffy (Gast)


Lesenswert?

Hallo,
tut mir leid, ich stehe gerade ein wenig auf dem Schlauch :(. Ich 
schrebie gerade in kleines programm in arg-gcc, hier habe ich ja 
folgenden Code:
1
#include <avr/io.h>          // (1)
2
 
3
int main (void) {            // (2)
4
 
5
   DDRB  = 0xFF;             // (3)
6
 
7
   PORTB = 0b11111110;
8
        // (4)
9
 
10
   while(1) {                // (5)
11
     /* "leere" Schleife*/   // (6)
12
   }                         // (7)
13
 
14
   /* wird nie erreicht */
15
   return 0;                 // (8)
16
   }
nun setze ich doch PORTB = 0b11111110;, d.h. das PB0 steht auf Masse, 
PORTB = 0b111111110; bedeudet doch dann PB0 = + und PB1=Masse, PORTB = 
0b11111011; -> PB2 = Masse alles andere vcc.
Liege ich hier falsch?

Gruß
Pfeiffy

von Dietrich L. (dietrichl)


Lesenswert?

Pfeiffy schrieb:
> nun setze ich doch
> PORTB = 0b11111110;, d.h. das PB0 steht auf Masse,
> PORTB = 0b111111110; bedeudet doch dann PB0 = + und PB1=Masse,

das sind 9 Bits und es ist falsch; Du meinst wohl PORTB = 0b11111101; ?

> PORTB = 0b11111011; -> PB2 = Masse alles andere vcc.
> Liege ich hier falsch?

Wenn Du meiner Korrektur berücksichtigst liegst Du nicht falsch.

von Pfeiffy (Gast)


Lesenswert?

nein, das war nur ein Schreibfehler hier im Text - aber hier gibt es 
wohl ein Problem mit meinem PB, ich habe das ganze jetzt auf den PC 
umgestzt, hier klappt es. (achso, beim Atmega 8)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Pfeiffy schrieb:
> wohl ein Problem mit meinem PB
Wenn ein externer Quarz deinen Mega8 antreibt, sind PB6 und PB7 
unbenutzbar, die anderen Pins sollten aber klappen. Es sei denn, der 
Port ist defekt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.