BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C VERZWEIFELT microcontroller-uhr » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen VERZWEIFELT microcontroller-uhr
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
rhamirez
Neuling

Dabei seit: 15.01.2008
Beiträge: 12

Achtung VERZWEIFELT microcontroller-uhr       Zum Anfang der Seite springen

Hallo leute sitze grade an einem schulprojekt,(seid nun montag morgens) und es muss freitag mittag fertig sein....

mein problem, habe für den controller ein programm geschrieben, genauer gesagt es soll eine uhr werden.

habe ein program, welches unabhängig vom Takt durch einstellungsparameter eine relativ genaue sekunde ausgibt, problem nur, es läuft nicht.

sollte jemand hier ahnung davon haben, bitte ich um dringende hilfe mein zeugniss ist in gefahr und der betreuende lehrer krank im bett=(


habe das program im anhang.

noch paar zusätzliche informationenen:

es handelt sich über einen ATTiny2313, der die uhrzeit binär ausgeben soll, der einfacheit halber soll er erstmal( und aus mangel an einem quarz) mit dem internen Takt von 4MHz laufen....

das problem ist, entweder springt er nicht in meinen interrupt, der interrupt funktioniert nicht, oder er gibt nix aus...

zur programmierung habe ich das AVRStudio4 genommen und lasse es dort erstmal in der simulation laufen

wäre nett, wenn mir jemand helfen könnte

Dateianhang:
zip uhr.zip (12 KB, 4 mal heruntergeladen)
15.01.2008 19:12 rhamirez ist offline E-Mail an rhamirez senden Beiträge von rhamirez suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Kann in der C Datei keine Fehler erkennen, und es scheint ja auch zu kompilieren wie du beschreibst.

Evtl. würde es helfen die C Datei mal etwas besser einzurücken, dann wäre der Code lesbarer.
Kannst auch gerne den betreffenden Teil des Codes hier in das Forum posten.

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
15.01.2008 19:19 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
rhamirez
Neuling

Dabei seit: 15.01.2008
Beiträge: 12

Themenstarter Thema begonnen von rhamirez
      Zum Anfang der Seite springen

stimmt, er compiliert es ohne probleme,fehler,warnungen, nur nehmen stunden,minuten sekunden keine neuen werte an, warum auch immer.
kann es gerne einrücken und direkt posten.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
//----------includes---------
#include <avr/io.h> 
#include <stdint.h>
#include <util/delay.h>
#include <avr/interrupt.h>
//---------------define-----------
#ifndef F_CPU
         #define F_CPU 4000000UL     
                    #endif

#ifndef OCR1A
         #define OCR1A OCR1	
                   #endif

#ifndef WGM12
        #define WGM12 CTC1
                    #endif

#define XTAL 4000000L	
   #define DEBOUNCE	256L
           #define uchar unsigned char
                   #define uint unsigned int
 

//----- variablen
uchar prescaler;
          uchar volatile second;
		
          volatile int8_t stunde=0;
                      volatile int8_t minute=0;
                                  volatile int8_t sekunde=0;

//----interrupt	hier könnte der fehler liegen
		
SIGNAL (SIG_OUTPUT_COMPARE1A)
{
 
           #if XTAL % DEBOUNCE                     // bei rest
          OCR1A = XTAL / DEBOUNCE - 1;	// debounce vergleich  
            #endif
               if( --prescaler == 0 ){
                 prescaler = (uchar)DEBOUNCE;
                   sekunde++;	second++;		
                       #if XTAL % DEBOUNCE			//
                            OCR1A = XTAL / DEBOUNCE + XTAL % DEBOUNCE - 1;
                                        #endif
                           }
}



//------------------main------------ 
int main (void) {
           sei();
	
	// ausgänge setzen
                 DDRB = 0xff;
	DDRA = 0xff; 
	DDRD = 0xff;
    
                 PORTB = 0x00; 
	PORTA = 0x00; 
	PORTD = 0x00; 
	           

 while(1)
 { 
             TCCR1B = 1<<WGM12^1<<CS10;			
              OCR1A = XTAL / DEBOUNCE - 1;          
                  TCNT1 = 0;                           
                     second = 0;
                              prescaler = (uchar)DEBOUNCE;         
                                  TIMSK=1<<OCIE1A;                                                     



 for(;;){
   
if( second == 60 )
      second = 0;


if (sekunde == 60)
{minute++; sekunde = 0;}

  if (minute ==60)
 {minute=0; stunde++;
 } 
  if (stunde ==25)
 {stunde=1;} 

  PORTD=stunde;
  PORTA=minute;
  PORTB=sekunde;


}

                  }
   return 0;                 
}


edit: bitte Code Tags verwenden.
15.01.2008 19:29 rhamirez ist offline E-Mail an rhamirez senden Beiträge von rhamirez suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Hm, lass mal die 2 Endlosschleife weg. (for(;Augenzwinkern )
weil da geht er ja nicht mehr raus, evtl. ist das auch der Fehler.

Und hast du schon mal versucht, die Schleifen mit einem sleep pausieren zu lassen?

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
15.01.2008 20:03 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
rhamirez
Neuling

Dabei seit: 15.01.2008
Beiträge: 12

Themenstarter Thema begonnen von rhamirez
      Zum Anfang der Seite springen

hier das datenblatt zu meinem microkontroller vielleicht hilft es, nein es liegt nicht an der forschleife

ansonsten nehme ich auch einen föllig neuen ansantz gerne an

Dateianhänge:
rar ATM.part1.rar (999 KB, 1 mal heruntergeladen)
rar ATM.part2.rar (491 KB, 0 mal heruntergeladen)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von rhamirez: 16.01.2008 11:30.

15.01.2008 20:59 rhamirez ist offline E-Mail an rhamirez senden Beiträge von rhamirez suchen
Exekutor Exekutor ist männlich


images/avatars/avatar-1957.jpg

Dabei seit: 06.07.2001
Beiträge: 4.071
Herkunft: From the Other Side

      Zum Anfang der Seite springen

Also ich hab das nur mit Assembler gemacht daher bin ich mir net so sicher, aber ist in Zeile 68 das ^1 normal?

Das kam mir eben beim drüberlesen etwas spanisch vor.

Ciao Exe

__________________
This is Europe, not L.A.!

Die Deutsche Rechtschreibung ist Freeware,du kannst sie kostenlos nutzen.Allerdings ist sie nicht Open Source,du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Exekutor: 16.01.2008 15:40.

16.01.2008 15:40 Exekutor ist offline E-Mail an Exekutor senden Beiträge von Exekutor suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Man sollte vielleicht dazu sagen, das das Tutorial/Beispiel des Herstellers bei ihm auch nicht läuft.
Dies war gestern noch im Chat erwähnt worden.
Daher kann der Code durchaus ok sein.

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
16.01.2008 16:06 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Exekutor Exekutor ist männlich


images/avatars/avatar-1957.jpg

Dabei seit: 06.07.2001
Beiträge: 4.071
Herkunft: From the Other Side

      Zum Anfang der Seite springen

Das ganze wird über ein Mikrocontroller Board ausgegeben oder?
Mal ein anderes probiert?

Ciao Exe

__________________
This is Europe, not L.A.!

Die Deutsche Rechtschreibung ist Freeware,du kannst sie kostenlos nutzen.Allerdings ist sie nicht Open Source,du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

16.01.2008 18:37 Exekutor ist offline E-Mail an Exekutor senden Beiträge von Exekutor suchen
antilooppe2 antilooppe2 ist männlich
Junior Member


images/avatars/avatar-970.gif

Dabei seit: 28.11.2002
Beiträge: 125
Herkunft: Nicht Da nicht hier abschon irgendwo

      Zum Anfang der Seite springen

Das prjekt ist mitlerweile fertig wollte ich ma erwähnen

__________________
Frage: Was ist ein FTP-Server?
Antwort: Es antwortet LG Braunschweig, Urteil vom 21.7.2003:
FTP-Server sind Systeme, in denen gecrackte, also nach Überwindung des Vervielfältigungsschutzes kopierte, Software geladen ist
31.01.2008 08:46 antilooppe2 ist offline E-Mail an antilooppe2 senden Beiträge von antilooppe2 suchen
Exekutor Exekutor ist männlich


images/avatars/avatar-1957.jpg

Dabei seit: 06.07.2001
Beiträge: 4.071
Herkunft: From the Other Side

      Zum Anfang der Seite springen

Und wo war der Fehler?

Ciao Exe

__________________
This is Europe, not L.A.!

Die Deutsche Rechtschreibung ist Freeware,du kannst sie kostenlos nutzen.Allerdings ist sie nicht Open Source,du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

31.01.2008 09:46 Exekutor ist offline E-Mail an Exekutor senden Beiträge von Exekutor suchen
rhamirez
Neuling

Dabei seit: 15.01.2008
Beiträge: 12

Themenstarter Thema begonnen von rhamirez
      Zum Anfang der Seite springen

wo der fehler lag gute frage ich habe keine ahnung, mehrere nette leute haben mir geholfen, auch sie können nicht sagen wieso weshalb warum, hauptsache es läuft
04.02.2008 22:11 rhamirez ist offline E-Mail an rhamirez senden Beiträge von rhamirez suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C VERZWEIFELT microcontroller-uhr

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH