unsigned char PB2_Read(void)
{
unsigned char pegel;
DDRB = 0x00;
pegel = PINB & 0x04;
if(pegel == 0x04)
{
pegel = 0x01; // '1'
}
else
{
pegel = 0x00; // '0'
}
return pegel;
}
void PB2_HIGH(void)
{
DDRB = 0x04;
PORTB = 0x04;
}
void PB2_LOW(void)
{
DDRB = 0x04;
PORTB = 0x00;
}
Sind für die 1-Wire Übertragung diese Funktionen geeignet?
Oder muss ich hier noch irgendwie den PullUp Widerstand beachten?
Gast
#3144464
mark Anderw schrieb: > Oder muss ich hier noch irgendwie den PullUp Widerstand beachten? Der PU-Widerstand ist essentiell für die Kommunikation. Er bleibt IMMER eingeschaltet. Geändert wird nur das Datenrichtungsregister, je nachdem, ob du senden oder empfangen willst.
Warum nicht so?
1 | |
2 | |
3 | |
4 | |
5 | |
Müsste das nicht :
unsigned char PB2_Read(void)
{
DDRB = 0x00;
return ( PINB & (1 << PB2 ) ) >> 2;
}
sein?
Stimmt!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.