Forum: Mikrocontroller und Digitale Elektronik I/O Port ATtiny2312 Vorgesehen als Output, jedoch aktiviert sich scheinbar intenen PullUp-Widerstand


von Daniel E. (delta-echo)


Lesenswert?

Hallo Leute,

ich habe eine Frage, hoffe jemand kann mir helfen.

Ich habe auf einem Steckbrett für einen ATtiny2313 eine 
ISP-Schnittstelle, einen Quarz mit 8MHz und am Port B Widerstände 
jeweils in Reihe mit einem 1k-Ohm Widerstand aufgebaut. Diese Teile 
entsprechen der Pollin-Schaltung für das RFID-Board: 
http://www.pollin.de/shop/downloads/D810059B.PDF

Das Pollin-Set habe ich auch, wenn ich den ATtiny2313 aus dem Bausatz 
verwendet funktionieren die LED für 2 Sekunden, LED-Beschaltung 
funktioniert also.

Jetzt habe ich folgendes Programm auf einen leeren ATtiny geschriebnen, 
die LED glimmen dann aber nur, die Spannung bricht ein (auf 1,8Volt) als 
ob der interne PullUp-Widerstand aktiviert ist. Lasse ich die LED weg 
sind die 5Volt dran, die ich erwarte lt. Programm unten. Die Ports habe 
ich nach dem Datenblatt des ATtiny programmiert.

Weiß jemand Rat??
1
/*
2
 * Pollin.c
3
 *
4
 * Created: 23.01.2012 18:52:43
5
 *  Author: Jana
6
 */ 
7
8
#include <avr/io.h>
9
10
11
12
void PORT_Init()
13
{
14
  
15
  
16
  DDRB = 0b11111111; /*Port wird als Ausgang deklariert*/
17
  PORTB = 0b00000000;  /*Pegel auf LOW wird vordefiniert*/
18
}
19
20
int main(void)
21
{
22
    while(1)
23
    {
24
        //TODO:: Please write your application code
25
    PORTB = 0b11111111; /*Pegel auf HIGHt*/
26
    
27
     
28
    }
29
}

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

Probier doch mal aus was passiert wenn Du PORT_Init() auch aufrufst ;-)

von Daniel E. (delta-echo)


Lesenswert?

Stimmt, er geht ja nicht von oben nach unten sondern beginnt in Main.. 
=)
Probiere ich gleich, hört sich aber plausibel an

von Daniel E. (delta-echo)


Lesenswert?

War es leider nicht, schade..
Dieser Code ist jetzt drauf
1
/*
2
 * Pollin.c
3
 *
4
 * Created: 23.01.2012 18:52:43
5
 *  Author: Jana
6
 */ 
7
8
#include <avr/io.h>
9
10
11
12
void PORT_Init()
13
{
14
  
15
  
16
  DDRB = 0b11111111;
17
  PORTB = 0b00000000;  
18
}
19
20
int main(void)
21
{
22
  
23
  PORT_Init;
24
    while(1)
25
    {
26
    
27
    
28
        //TODO:: Please write your application code
29
    PORTB = 0b11111111;
30
    
31
     
32
    }
33
}

von Daniel E. (delta-echo)


Lesenswert?

Funktion *()*..


jetzt geht es, Danke!!!!!
1
/*
2
 * Pollin.c
3
 *
4
 * Created: 23.01.2012 18:52:43
5
 *  Author: Jana
6
 */ 
7
8
#include <avr/io.h>
9
10
11
12
void PORT_Init()
13
{
14
  
15
  
16
  DDRB = 0b11111111;
17
  PORTB = 0b00000000;  
18
}
19
20
int main(void)
21
{
22
  PORT_Init();
23
    while(1)
24
    {
25
    
26
    
27
        //TODO:: Please write your application code
28
    PORTB = 0b11111111;
29
    
30
     
31
    }
32
}

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.