Uhr ATtiny13 Befehle gesucht (Arduino AS ISP -> C)

Gast #4959936
Hi,
ich suche für die Arduino-IDE einen Befehl wie in Assembler rjmp zum 
Sprung innerhalb des Programmes.
sollte das nicht gehen (ich komme eh mit C und diesem Loop-Zeugs nicht 
klar) würde ich mich über einen Tipp bzgl. der Realisierung freuen.
Bitte nur ein Tipp, nicht ein fertiges Programm. Im Gegensatz zu vielen 
Anderen im Forum möchte ich noch etwas selber denken.
Bauen möchte ich eine Mini-Uhr:
Ich baue einen CMOS-Quarz-Oszillator, dessen Ausgang kommt an Pin 6 des 
Tiny13.
An Pin 5 kommt eine LED mit Vorwiderstand (2mA).
An Pin 2 und 3 kommen entprellte Taster.
Nach Drücken auf den Taster an Pin 3 wird die Uhrzeit über eine LED 
ausgegeben (das ist nicht das Problem, also meinerseits).
Nach langem Drücken (4 Sekunden) auf den Taster an Pin 2 kann die 
Uhrzeit eingestellt werden (durch kurzes Drücken).
Gut zu wissen wäre auch, wie man einem Zahlenwert die Nachkommastellen 
entzieht, da ich mit den 86400 Sekunden arbeiten möchte.

Danke

Pascal
Gast
Pascal schrieb:
> ich suche für die Arduino-IDE einen Befehl wie in Assembler rjmp zum
> Sprung innerhalb des Programmes.
> sollte das nicht gehen (ich komme eh mit C und diesem Loop-Zeugs nicht
> klar) würde ich mich über einen Tipp bzgl. der Realisierung freuen.

Da solltest Du schon mal bekanntgeben, was Du mit dem Sprung bezwecken 
willst.
Hi

Wenn Du die Variabel als (irgend ein passendes) INT declarierst, sind 
Nachkommastellen kein Problem mehr.
Da 86k Sekunden 'etwas' mehr als 65535 sind, reichen 16bit nicht mehr 
aus.
Ob Du 24bit nehmen kannst, oder 32bit nehmen musst, ist mir aber nicht 
bekennt.

MfG
Gast
Willst du nicht lieber einen etwa größeren ATtiny verwenden und den 
direkt mit einem 32kHz Quarz takten?

Für ein Uhr-Programm sollten 32kHz auch als Systemtakt locker 
ausreichen. Damit habe ich schon wesentlich komplexere Sachen gamcht.
Gast
Pascal schrieb:
> ich suche für die Arduino-IDE einen Befehl wie in Assembler rjmp zum
> Sprung innerhalb des Programmes.

Goto ?!?!?!


Oder inline Assembler, dann tuts auch dein rjump

Oder eine Lib mit *.S Datei basteln. Dann kann die Arduino IDE auch 
Assemblerstrecken kompilieren.

Pascal schrieb:
> (ich komme eh mit C und diesem Loop-Zeugs nicht
> klar)
Dann lass die setup() und loop() doch weg.
Keiner zwingt dich damit zu arbeiten.
Gast
Manuel schrieb:
> heißt das, ich kann auch alle befehle außerhalb dessen eingeben und
> diese werden dann einmalig ausgeführt? (nacheinander)

Nein!

Dann wirst du eine main() einführen müssen.
Und darin kannst du dann "alle befehle" "eingeben und diese werden dann 
einmalig ausgeführt"
Gast
Die Arduino IDE liefert halt schon eine main() mit, und ruft daraus dann 
setup() und loop(), vermutlich um es den Einsteigern etwas zu 
erleichtern.
main() muss vorhanden sein, weil das die Standardfunktion in C/C++ ist, 
wo das Hauptprogramm beginnt.
"Einen Sprung innerhalb des Programms" braucht man quasi nie. Schleifen 
kann man mit "break" abbrechen, will man zig geschachtelte Schleifen 
verlassen, darf es auch mal ein "goto" sein. Daneben gibt es noch 
setjmp.h, das habe ich niemals gebraucht.
Pascal: Wenn dir C zu schwer ist, programmiere doch in PASCAL. ;-))
Sorry - der Witz musste sein.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.