Forum: Mikrocontroller und Digitale Elektronik VM-Lab Anfängerfrage


von Jens (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche mich gerade in VM Lab einzuarbeiten.

Ich habe dafür ein einfaches Programm geschrieben. Ich schalte über 
einen Schalter einen Port An- und Aus. Ich verwende einen ATMEGA32 im 
Simulator.

Der Port wird aber nie auf Low gesetzt, sondern nur auf die Hälfte 
(siehe Screenshot).  PullUps habe ich am Port aktiviert....

Ich habe den "Code" und die Einstellungen des VMLab angehängt.


Code:
1
#include <avr/io.h>
2
#define F_CPU 8000000L
3
#include <util/delay.h>
4
5
6
int main(void)
7
{
8
  DDRB |= (1 << DDB2); //  Ausgang
9
  DDRD &= ~(1 << DDD2); //  Eingang
10
11
  PORTD |= (1<<PD2); //PullUp
12
13
  PORTB |= (1<<PB3);
14
  
15
  while(1)
16
  {
17
    if ( !(PIND & (1<<PIND2)) )
18
    {
19
        PORTB &= ~(1<<PB3);
20
    }
21
    
22
    else
23
    {
24
      PORTB |= (1<<PB3);
25
    }
26
  }
27
}

Einstellungen VM-Lab:
1
; ************************************************************
2
; PROJECT:
3
; AUTHOR:
4
; ************************************************************
5
6
; Micro + software running
7
; ------------------------------------------------------------
8
.MICRO "ATmega32"
9
.TOOLCHAIN "GCC"
10
.GCCPATH   "C:\WinAVR-20100110"
11
.GCCMAKE   AUTO
12
.TARGET    "simulation_v01.hex"
13
.SOURCE    "main.c"
14
15
.TRACE              ; Activate micro trace
16
17
; Following lines are optional; if not included
18
; exactly these values are taken by default
19
; ------------------------------------------------------------
20
.POWER VDD=5 VSS=0  ; Power nodes
21
.CLOCK 1meg         ; Micro clock
22
.STORE 250m         ; Trace (micro+signals) storage time
23
24
; Micro nodes: RESET, AREF, PA0-PA7, PB0-PB7, PC0-PC7, PD0-PD7, ACO, TIM1OVF
25
; Define here the hardware around the micro
26
; ------------------------------------------------------------
27
;K1 GND PD2 MONOSTABLE(15m)
28
K1 GND PD2 LATCHED
29
.PLOT V(PD2) V(PB3)

Wäre super wenn mir jemand helfen könnte.

Danke und Gruß Jens

von Oliver S. (oliverso)


Lesenswert?

Jens schrieb:
>   DDRB |= (1 << DDB2); //  Ausgang

Über diese Zeile solltest du nochmals nachdenken.

Oliver

von Jens (Gast)


Lesenswert?

Hy Oliver,

danke ;-), jetzt funktionierts! Manchmal ist man einfach blind.....

Gruß Jens

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.