Hallo erstmal ich bin neu ihr und da ich schon seit einen sehr langen Zeitraum um ein Problem kämpfe. Hab es mal zu Seite gelegt doch es reizt mich wieder es zu reparieren. Also ich versuch es mal ausführlich zu beschreiben. Es handelt sich ihr um ein altes Schulprojekt es besteht aus einen Netzgerät (altes Ladekabel 5V DC ~100mA), ein PIC16F887 10.000Hz Quarz ein LC-Display Das Programm des µC versuch ich mal zu beschreiben ich habe den Code leider nicht mehr. Das Programm liest per TMR0 ein TTL Signal ein und liest die Hz Zahl aus und gibt es auf dem LC-Display aus das funktioniert ja einwandfrei. Der einlese punkt ist mit ein Kupferkabel (isoliert Star 0,25) am TMR0 Port angeschlossen so da ist das Problem. Das Problem: Sobald das Kupferkabel (0.25 Quadrat Star) am Pin angeklemmt wird zeigt er auf dem LC-Display ein wert von genau 80HZ ohne ein Messung. Ohne Kabel zeigt er ein wert von 0HZ sobald ich aber das Kabel auf dem Minus Pol lege zeigt er 0Hz wieder an oder wenn eine Messung durchgeführt wird zeigt er den richtigen Wert an. Die Frage: Habt ihr eine Lösung ob ich das Kabel vielleicht noch mit einen Kondensator auf Minus gelegt lösen könnte ? Bei mir war es ohne erfolg und ich weis auch nicht mehr so weiter.
André Kä schrieb: > Ohne > Kabel zeigt er ein wert von 0HZ sobald ich aber das Kabel auf dem Minus > Pol lege zeigt er 0Hz wieder an oder wenn eine Messung durchgeführt wird > zeigt er den richtigen Wert an. Bahnhof! Was ist zum Beispiel ein "Quadrat Star"? Und welches Kabel willst du auf welches Minus legen? Versuch doch mal in aller Ruhe das Problem zu beschreiben. Ein Schaltplan wäre auch gut.
Ich entschuldige ich für die Verwirrung es sollte Quarz heißen. Es handelt sich hierbei um ein Stares kabel und nicht flexibel. Auf den 0Kraft Sockel für Pic16F887 habe ich ein kabel zum anschließen für die zu mittelnde Frequenz z.b von einen NE555 starte ich das Programm so zeigt er mir ein wert von 0HZ auf dem LCD an klemme ich das Kabel dazu am Port TMRO zeigt er mir ein wert von 80Hz an ohne das ich was messen möchte.
Das sieht mir sehr nach einem Programmfehler aus. Aber auch die Beschaltung des µC kann man nicht ausschließen (Abblock-Cs, Masseführung usw.). Ich habe allerdings mit PIC noch nicht viel gemacht und kann nicht sagen, daß ich mich damit auskenne. Deswegen würde ich vorschlagen, du stellst mal einen Schaltplan hier rein und auch ein Listing des Programmes auf dem PIC. Dann kann dir sicherlich irendwie geholfen werden. Vieleicht auch ein Foto von deinem Aufbau.
Stelle mal die Fotos rein den Schaltplan und das Programm muss ich suchen ist jetzt fast ein halbes Jahr her
Habe das Programm noch gefunden :
1 | program Frequenzmessung |
2 | |
3 | dim LCD_RS as sbit at RB0_bit |
4 | LCD_EN as sbit at RB1_bit |
5 | LCD_D4 as sbit at RB4_bit |
6 | LCD_D5 as sbit at RB5_bit |
7 | LCD_D6 as sbit at RB6_bit |
8 | LCD_D7 as sbit at RB7_bit |
9 | |
10 | LCD_RS_Direction as sbit at TRISB0_bit |
11 | LCD_EN_Direction as sbit at TRISB1_bit |
12 | LCD_D4_Direction as sbit at TRISB4_bit |
13 | LCD_D5_Direction as sbit at TRISB5_bit |
14 | LCD_D6_Direction as sbit at TRISB6_bit |
15 | LCD_D7_Direction as sbit at TRISB7_bit |
16 | |
17 | dim |
18 | Periodendauer as word |
19 | |
20 | Ausrechnung as string[3] |
21 | Hz as integer |
22 | wert as char[16] |
23 | |
24 | sub procedure Port |
25 | |
26 | TRISA = %00010000 'PortA.4 ist ein Eingang |
27 | PORTB = 0 |
28 | TRISB = 0 |
29 | PORTB = 0xFF |
30 | TRISB = 0xFF |
31 | ANSEL = 0 'Analogen Eingänge sind aus |
32 | ANSELH = 0 |
33 | TRISC = %1111111 'PortC ist ein Eingang |
34 | TRISD = %00000000 'PortD ist ein Ausgang |
35 | intcon = %10000000 'Aktivierung von TMR0 |
36 | option_reg = %00101000 'Timer 0 bei steigener Flanke ohne Vorteiler |
37 | |
38 | end sub |
39 | |
40 | |
41 | |
42 | sub procedure ausgabe |
43 | 'Frequensauslessen |
44 | Lcd_Cmd(_LCD_CLEAR) 'Lösche Display Text |
45 | WordToStr(Periodendauer,Ausrechnung)'Wandelt Byte in Dezimal um |
46 | lcd_Out(1,4,Ausrechnung) 'Gibt den wert auf dem LCD Display aus |
47 | lcd_Out(1,9,wert) 'Gibt den wert auf dem LCD Display aus |
48 | PORTD = TMR0 |
49 | |
50 | end sub |
51 | |
52 | Main: |
53 | |
54 | Port 'Procedure Port wird eingefügt |
55 | Lcd_Init() 'LCD-Display wird eingebunden |
56 | Lcd_Cmd(_LCD_CURSOR_OFF) 'Schaltet LCD-Display Cursar aus |
57 | |
58 | 'Begrüsungstext |
59 | lcd_Out(1,1,"Frequenzmessung") |
60 | lcd_Out(2,2,"Schule 2013") |
61 | Delay_ms(2000) |
62 | Lcd_Cmd(_LCD_CLEAR) 'Lösche Display Text |
63 | lcd_Out(1,3,"Warte auf") |
64 | lcd_Out(2,3,"Frequenz") |
65 | |
66 | start: |
67 | while 1 |
68 | PORTD.7 = 1 |
69 | TMR0 = 0 'TMR0 Wert auf 0 gesetzt |
70 | intcon.T0IF = 0 |
71 | |
72 | delay_ms(1000) |
73 | |
74 | 'Frequenzmessung |
75 | Delay_ms(1000) '1 Sekunde Warte Zeit |
76 | PORTA = %00000000 |
77 | Periodendauer = TMR0 'Speichert den Binären TMR0 Werts |
78 | |
79 | 'Abfrage in Hertz |
80 | if intcon.T0IF = 1 then |
81 | TMR0 = 0 |
82 | intcon.T0IF = 0 |
83 | PORTA = %00010000 |
84 | delay_ms(100) |
85 | PORTA = %00000000 |
86 | Periodendauer = TMR0 'Speichert den Binären TMR0 Werts |
87 | else |
88 | |
89 | wert = "Hz" |
90 | ausgabe |
91 | goto start |
92 | end if |
93 | |
94 | 'Abfrage für KHertz |
95 | if intcon.T0IF = 1 then |
96 | TMR0 = 0 |
97 | intcon.T0IF = 0 |
98 | PORTA = %00010000 |
99 | delay_ms(10) |
100 | PORTA = %00000000 |
101 | Periodendauer = TMR0 'Speichert den Binären TMR0 Werts |
102 | else |
103 | |
104 | wert = "Hz" |
105 | Periodendauer = Periodendauer *10 |
106 | ausgabe |
107 | goto start |
108 | |
109 | end if |
110 | |
111 | 'Abfrage für KHertz |
112 | if intcon.T0IF = 1 then |
113 | TMR0 = 0 |
114 | intcon.T0IF = 0 |
115 | PORTA = %00010000 |
116 | delay_ms(1) |
117 | PORTA = %00000000 |
118 | Periodendauer = TMR0 'Speichert den Binären TMR0 Werts |
119 | else |
120 | |
121 | wert = "Hz" |
122 | Periodendauer = Periodendauer *100 |
123 | ausgabe |
124 | goto start |
125 | |
126 | end if |
127 | |
128 | 'Abfrage für kHertz |
129 | if intcon.T0IF = 1 then |
130 | TMR0 = 0 |
131 | intcon.T0IF = 0 |
132 | PORTA = %00010000 |
133 | delay_us(100) |
134 | PORTA = %00000000 |
135 | Periodendauer = TMR0 'Speichert den Binären TMR0 Werts |
136 | else |
137 | Periodendauer = Periodendauer *1000 |
138 | wert = "Hz" |
139 | ausgabe |
140 | goto start |
141 | end if |
142 | 'Abfrage für kHertz |
143 | if intcon.T0IF = 1 then |
144 | TMR0 = 0 |
145 | intcon.T0IF = 0 |
146 | PORTA = %00010000 |
147 | delay_us(10) |
148 | PORTA = %00000000 |
149 | Periodendauer = TMR0 'Speichert den Binären TMR0 Werts |
150 | else |
151 | Periodendauer = Periodendauer *1000 |
152 | wert = "Hz" |
153 | ausgabe |
154 | goto start |
155 | end if |
156 | |
157 | |
158 | |
159 | |
160 | |
161 | wend |
162 | end. |
André Kä schrieb: > Stelle mal die Fotos rein ... Respekt für die zwei Bilder mit wenigen Millibytes an Informationen verballerst du je 6 MegaByte!!! Damit bist du der Depp der Woche! Nur schlau wird daraus trotzdem keiner.
André Kä schrieb: > Entweder man macht ein vernümftiges Bild oder man lässt es ganz sein. Ooooder man stellt sich nicht blöde an. Das geht auch. Manchmal.
Die PIC-Eingänge sind hochohmig. Wenn da ein nackter Draht ohne irgendwas dranhängt, mißt der Timer irgendwas. Vielleicht dein Netzteil, vielleicht die Lampe auf dem Tisch, was auch immer. deswegen verschwindet die Fehlmessung auch, wenn du den Draht an eine Signalquelle anschließt oder an Masse.
Amen. Die einzige offene Frage wäre noch, warum es gerade 80Hz sind. Ich hätte 50Hz erwartet.
André Kä schrieb: > 20140725_203325_HDR.jpg > 6 MB > > 20140725_203253_HDR.jpg > 6 MB Das ist mal wieder eine reife Leistung, 12 Megabyte für eine Information, die sich in 2 Byte übermitteln läßt. ... und nur, weil das tolle Huawei P6-U06 einen so toll großen Kamerasensor hat und der Nutzer unfähig ist, drüber nachzudenken, wie die Forenregeln über Bildformate wohl zu solchen absolut unsinnigen Bildgrößen stehen.
Welch reife Leistung all derjeniger, die sich mal wieder über die Größe eines Fotos aufregen können. Schön daß es noch immer genügend Hilfssheriffs im Forum gibt, die einen User durch Beleidigungen auf die Bildgröße hinweisen können. Schön daß der Forenbetreiber scheinbar unwillig zu blöd unfähig / nicht in der Lage / oder was auch immer ist, die Forensoftware so anzupassen, daß nur Bilder mit einer maximalen Größe zugelassen sind, denn so sterben die Hilfssheriffs hier nie aus.
Kopfschüttel schrieb: > Welch reife Leistung all derjeniger, die sich mal wieder über die > Größe > eines Fotos aufregen können. > Schön daß es noch immer genügend Hilfssheriffs im Forum gibt, die einen > User durch Beleidigungen auf die Bildgröße hinweisen können. > Schön daß der Forenbetreiber scheinbar unwillig zu blöd unfähig / > nicht in der Lage / oder was auch immer ist, die Forensoftware so > anzupassen, daß nur Bilder mit einer maximalen Größe zugelassen sind, > denn so sterben die Hilfssheriffs hier nie aus. Manchmal können hochauflösende und wenig komprimierte Fotos sinnvoll sein. Hier nicht.
Warum es gerade 80 Hz sind Wundert mich auch. Normal sollte so ein Draht als "Antenne" eher 50 Hz oder ggf. noch 100 Hz aus der Netzfrequenz empfangen. Das Problem könnte das recht schlechte Programm zur Messung sein: da sind mit den 80 Hz ggf. 100 Hz gemeint.
André Kä schrieb: > Entweder man macht ein vernümftiges Bild oder man lässt es ganz sein. nöö, beides geht auch, siehe anhang. Kopfschüttel schrieb: > Schön daß der Forenbetreiber scheinbar unwillig zu blöd unfähig / > nicht in der Lage / oder was auch immer ist, die Forensoftware so > anzupassen, daß nur Bilder mit einer maximalen Größe zugelassen sind, > denn so sterben die Hilfssheriffs hier nie aus. bist du senil? ist die suchfuktion kaputt? reicht dein iq nicht um es zu verstehen? Die bildergröße ist locker 100 mal angesprochen worden, und es gab immer wieder eine sehr gute begründung, wenn es dir nicht passt na dann pech gehabt.
André Kä schrieb: > Habe das Programm noch gefunden : Na gut, schon wieder eine Latte gerissen...
1 | Wichtige Regeln - erst lesen, dann posten! |
2 | ... |
3 | Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang |
4 | ... |
5 | Dateianhang: |
6 | ... |
7 | Siehe Bildformate. |
Kopfschüttel schrieb: > Schön daß der Forenbetreiber scheinbar unwillig zu blöd unfähig nicht > in der Lage oder was auch immer ist, die Forensoftware so anzupassen, > daß nur Bilder mit einer maximalen Größe zugelassen sind Es gibt durchaus Fälle, wo ein 3MB Bild genau 3MB Information enthält. Und da wäre es blöde, wenn das dann automatisch auf 300kB zusammengedampft wird. Du solltest das Ding zwischen den Ohren ruhig mal ab&an benutzen und nicht nur hin-und-her schütteln... Zurück zur Sache: André Kä schrieb: > Habt ihr eine Lösung ob ich das Kabel vielleicht noch mit einen > Kondensator auf Minus gelegt lösen könnte ? Du hast herausgefunden, dass ein offener CMOS Eingang alles mögliche einfängt. Mach einen Pulldown an den uC Eingang. 100kOhm könnten da Wunder bewirken... Axel Schwenke schrieb: > Amen. Die einzige offene Frage wäre noch, warum es gerade 80Hz sind. > Ich hätte 50Hz erwartet. Ich auch. Mitten in Deutschland...
Axel Schwenke schrieb: > Amen. Die einzige offene Frage wäre noch, warum es gerade 80Hz sind. > Ich hätte 50Hz erwartet. Das könnte auch an einem HW- oder SW-Fehler liegen ...
André Kä schrieb: > ... > (altes Ladekabel 5V DC ~100mA), ein PIC16F887 10.000Hz Quarz ... ^^^^^^^^ Das werden wohl eher 10 Mega Hertz sein. ;-) Axel Schwenke schrieb: > Amen. Die einzige offene Frage wäre noch, warum es gerade 80Hz sind. > Ich hätte 50Hz erwartet. Liegt doch auf der Hand. - Simple Mathematik!
Der PIC wird mit 10 MHz betrieben. Wenn die Software aber von einer Taktfrequenz von 16 MHz ausgeht, wird sie nun 80 Hz statt 50 Hz anzeigen. Ist ein typischer Anfängerfehler bei Frequenzzählerprojekten, deshalb hab ich mir die SW nicht angeschaut. 8-)
:
Bearbeitet durch User
Michael L. schrieb: > Der PIC wird mit 10 MHz betrieben. Wenn die Software aber von einer > Taktfrequenz von 16 MHz ausgeht, wird sie nun 80 Hz statt 50 Hz > anzeigen. Das kann natürlich sein. XL
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.