4. Juni 200916 j hallo leute ich hab eine digitale uhr aufgebaut . sie verfügt über 13 ausgäne. diese sollen als eingänge mit einem µc_system (mega32)ausgelen und als Textmeldung in einem Bildschim (hyperterminal) im format HH:MM erscheinen compiler: codevisionavr ich würde mich auf jede antwort freuen. basti
4. Juni 200916 j was muss ich schrittweise tun um die aktuelle uhrzeit angezeigt zu bekommen? bis jetzt habe ich nur die serielle schnittstelle RS232 in wizzardavr unter USART initialisiert
5. Juni 200916 j was muss ich schrittweise tun um die aktuelle uhrzeit angezeigt zu bekommen? Soweit ich weiß sind µc-Systeme basierend auf dem AVR Mikrocontroler. Folglich brauchst du ein C-Programm auf der Hardwareseite (wenn es schon da ist, dann ok) und einen Empfänger auf der PC-Seite. Da du was von serieller Schnittstelle bzw. RS232 sagtest, solltest du dir vielleicht mal das hier durchlesen. Ansonsten muss man eigentlich nur wissen, dass man serielle Ports als Datei handlen muss. Dabei hilft CreateFile und WriteFile bzw. Readfile.
5. Juni 200916 j hallo, was muss ich als ertens dem µc mitteilen das er mir den zählerstand abliest? wenn man Q1-4 an einen Port schließt, sollte der zählerstand abgelesen werden, und als textmeldung in einem bildschirmmenü erscheinen. mfg
7. Juni 200916 j Moin! Wie genau sieht denn Denn Dein Aufbau aus? Was genau ist die Aufgabe des Mega32 in Deiner Schaltung? Wie löst Du die Kommunikation über RS232? Wo genau ist das Problem bei der Übertragung? Wie der Code zum senden aussehen muss? Ist Dein RS232-Kabel richtig belegt? Hast Du im Hyperterminal die richtige Geschwindigkeit/Parität/Stopbit eingestellt? Fragen über Fragen...
7. Juni 200916 j hi; was muss ich tun damit der controller die Pins eines ports abliest und die zahlen im format hh:mm (min1=9, min10=5, h1=9|3, h10=2) als ausgabe auf einen monitor (terminal) wiedergibt. ich hab so angefangen: headers #define MIN_EINER PINA&0xF0 #define MIN_ZEHNER PINA&0x0E #define STD_EINER PINB&0x0F #define STD_ZEHNER PINB&0x30 . . . void main void { DDRA=0x00; PORTA=0xFE; DDRB=0xC0; PORTB=0X3F; init(); //Kommunikation über RS232 while(1) { anweisung1?? anweisung2?? //hier muss ich die Zahlen in Ascii zeichen umwandeln wie?? printf("\n\r HH:MM"); } } } mfg Bearbeitet 7. Juni 200916 j von koldats
7. Juni 200916 j Es wäre gut, wenn Du mal schreibst in welchem Format die Zaheln vorliegen, sonst muss man erstmal raten. Angenommen, Du hast die Zahlen als normale Bytewerte vorliegen, musst Du sie in Einer und Zehner zerlegen und dann den passenden "Offset" addieren, um den richtigen ASCII-Code zu bekommen. Der Offset für die Ziffern ist 48. Bsp: Du hast die Ziffer 6 addierst 48 und bekommst den ASCII-Code 54. Hier die ASCII-Tabelle: [url=http://de.wikipedia.org/wiki/ASCII#ASCII-Tabelle] Nun wirst Du wohl sowohl für die Stunden als auch die Minuten jeweils ein Byte bekommen. Zerlegen kannst Du die Zahlen ja mit Hilfe von Division und Modulo.
7. Juni 200916 j hallo; weisst du mit welcher funktion ich die PORT.PINs in eine dezi_zahl umwandeln kann?
8. Juni 200916 j Du schweigst Dich ziemlich über alles aus, was zurProblemlösung beitragen könnte. Das ist toll, ich mag Rätsel! Andere hätten wohl schon gesagt, dass Du es allein machen kannst... Aber zum Thema: Wo genau kommen denn jetzt die Daten an? Eine Stelle pro Pin? Musst Du die Stellen also erstmal in "echte" Bytes deserialisieren? Oder bekommst Du die Minuten und Stunden an 2 Ports und hast hier dann schon die richtigen Zahlen?
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.