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