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?
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 | unsigned char PB2_Read(void) |
2 | {
|
3 | DDRB = 0x00; |
4 | return ( PINB & (1 << PB2 ) ) >> 3; |
5 | } |
Müsste das nicht :
unsigned char PB2_Read(void)
{
DDRB = 0x00;
return ( PINB & (1 << PB2 ) ) >> 2;
}
sein?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.