- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 66

Thema: Programm_Anpassungen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #29
    Benutzer Stammmitglied
    Registriert seit
    09.07.2007
    Beiträge
    42
    Hi Sternthaler,

    ja, ich traue mich noch ...
    Tolllll!

    Auch ich konnte aus beiden Beiträgen downloaden.
    Danke für die Rückmeldung! Aber Ihr wisst ja, so'n Newby weiß 'halt noch nicht alles ... !

    Nun, zu mehr Erstem:
    Note:
    3. Some of the Status Flags are cleared by writing a logical one to them. *1*
    Note that the CBI and SBI instructions will operate on all bits in the I/O Register,
    writing a one back into any flag read as set, thus clearing the flag. *2*
    The CBI and SBI instructions work with registers 0x00 to 0x1F only.
    ---------
    Hier hört mein Englisch tatsächlich auf. Die weitere Erklärung von CBI und SBI mit 'read as set' kann ich tatsächlich nicht mehr umsetzen.
    Zu *1*:
    Verstehe ICH so: Normal ist, dass "Clear" *zurücksetzen auf Null bedeutet*, aber es gibt auch
    den Fall, dass "Zurücksetzen" einfach *Schreiben einer Eins* bedeutet! (Die Du dann auch als solche lesen kannst: 'read as set'!)

    Zu *2*:
    CBI und SBI sind Maschinesprache-Befehle Clear - bzw. Set Bit im unteren Bereich (0x00 to 0x1F only) der IO-Register!

    Zu *1* habe ich mein kleines Prog. ergänzt und lese das IO-Register "UCSRB" vor und nach dem "Clearen" aus! (Es muss natürlich heißen: "sollte", da ich das Prog. noch nicht testen kann!)
    Code:
    ...
    void b2h(byte d) 
    {	byte h=(d/16)+0x30;
    	if(h>0x39) h+=7;
    	SerWrite(h);
    	h=(d & 0x0f)+0x30;
    	if(h>0x39) h+=7;
    	SerWrite(h);
    }
    ....
    	b2h(UCSRA);
    	SerWrite(' ');
    	UCSRA |= 0x40;	// 'clear' transmitter flag
    	Sleep(0xFF);
    	b2h(UCSRA);
    ....
    cu Helmut


    Nachtrag:
    Sorry, ich habe das Forum nicht besucht und dann gepostet, sondern verkehrt herum! !
    So muss ich doch noch "nachtarocken"!

    zu @damaltor:
    hi damaltor,

    Du hast das *1* "fast" besser beschrieben, als ich!

    Das mit dem gelöschten Flag, wusste ich leider (noch!) nicht!
    Aber mein kleines Prog. müsste das ja auch zeigen! (Ich will's morgen testen!)

    zu @radbruch:
    hi mic,

    Deine Behauptung mit "=" kann ICH _nicht_teilen_: !

    Wenn Du mit "=" eine Zuweisung machst, so wird die Variable mit diesem Wert belegt!
    (Außer bei CBI, ..., also den Bit-Operatoren! Aber das schreibst man je in Assambler anders!)

    Wenn man nun "|=" meint, so heißt das, dass die (vordere) Variable mit dem hinteren Wert
    "geodert wird". Und wenn da nur ein Bit gesetzt ist, dann wird nur an _dieser_Stelle_ ein
    Bit gesetzt! (Bei mehreren natürlich eben diese.)

    "&= ~" ist das Gegentum dazu: hier löscht Du das im hinteren Teil als "Eins" gesetzte Bit,
    bzw. mehrere!

    cu Helmut

    PS: bei b2h() (also Byte/Char to hex) sollte/könnte man noch "0x" davor senden.
    Angehängte Dateien Angehängte Dateien

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen