| |
|
- Re:Pic 16F87 Problem - 1987_ew Montag, den 14. Mai 2012 um 09:00 Uhr
- Re:Pic 16F87 Problem - 1987_ew Montag, den 14. Mai 2012 um 07:31 Uhr
- Re:Pic 16F87 Problem - Stampede Freitag, den 11. Mai 2012 um 09:23 Uhr
- Pic 16F87 Problem - 1987_ew Donnerstag, den 10. Mai 2012 um 14:01 Uhr
- Re:Frequenz/PWM-Generator mit serieller Ansteuerung - Zeero Dienstag, den 08. Mai 2012 um 21:45 Uhr
- Re:Probleme GPIO-Register - Fraeo09 Dienstag, den 08. Mai 2012 um 20:29 Uhr
- Re:Probleme GPIO-Register - Stampede Dienstag, den 08. Mai 2012 um 20:22 Uhr
- Re:Frequenz/PWM-Generator mit serieller Ansteuerung - Edson Dienstag, den 08. Mai 2012 um 19:32 Uhr
- Probleme GPIO-Register - Fraeo09 Dienstag, den 08. Mai 2012 um 18:53 Uhr
- Re:PIC32 MusicPlayer - Stampede Montag, den 07. Mai 2012 um 09:19 Uhr
|
|
|
1
am: Mai 14, 2012, 09:00:50
|
|
Begonnen von 1987_ew - Letzter Beitrag von 1987_ew
|
Also ich hab mal en neues Projekt erstellt und des mit blinkender LED gemacht(im Hauptprogramm). Und es funtktioniert wieder einwandfrei!  auch mit dem Timer0 Interrupt funktioniert es jetzt gut. Setze jetzt nur das enstrechende Flag TMROIF zurück. Das wird wohl der Fehler gewesen sein oder, da ich jetzt kein enable oder disable für den Interrupt in der ISR verwende? Gruß Elias
|
|
|
2
am: Mai 14, 2012, 07:31:19
|
|
Begonnen von 1987_ew - Letzter Beitrag von 1987_ew
|
|
Hey Stefan, vielen Dank für die ersten Tipps. Ich benutze den CCS Compiler. Ich habe mal versucht, die zwei ISR's nicht zu verwenden, habe eine LED im Haupprogramm blinken lassen, dabei führt er das auch nicht sauber aus. Ist eigentlich ja ganz simpel. Die LED macht im Prinzip was sie will. Hab es mit Forschleifen und mit delay's versucht. war aber immer das gleiche Ergebnis. Hab mal nachgeschaut ob der interne Takt sauber funktioniert, da ist alles in Ordnung. Wegen den ISR's, muss man nicht in der enspechenden ISR den Interrupt disablen wenn dieser Interrupt ausgelöst wird? bzw.warum gibt des Probleme wenn man in einer anderen ISR z.B. den Inerrupt für den Timer enabled?
Gruß Elias
|
|
|
3
am: Mai 11, 2012, 09:23:04
|
|
Begonnen von 1987_ew - Letzter Beitrag von Stampede
|
|
Hallo,
welcher Complier ist das? Der Code, naja, da ist sehr viel rein und rauskommentiert, bilcke da auch nicht 100% durch. Aber paar grunsätzliche Sachen. Die ISRs gehört nicht: 1. Enable / Disable Interrupts, speziell ersteres führt zu extremem Chaos. 2. Delays.
Dann sollten Variabelen, die in der ISB geschrieben werden auf jeden fall volatile sein, wenn du nur ließt würde ich die auch mal static deklarieren. Keine Ahnung, wie dein Complier das hier umgesetzt hat. Der Sinn des Programms erschließt sich mir auch nicht... Ich würde es ohnehin anders lösen. Ganz kleine RS232 ISR, die die Daten beim Empfang in einen Ringpuffer schreibt und dann ein Flag setzt das ein neues Byte drin ist (ähnlich deinem remote_nachricht). Das Timing für die Blinkerei für ich dann über einen Tickcounter machen, dessen Zeitbasis über Timer0 läuft. Da es ja nur LEDs sind, denke ich ist das exakte Timing egal (also ob es nun 100ms oder 102ms sind).
Gruß Stefan
|
|
|
4
am: Mai 10, 2012, 14:01:28
|
|
Begonnen von 1987_ew - Letzter Beitrag von 1987_ew
|
|
Hallo, ich habe da eine Frage zu dem Pic 16F87. Mein Programm, dass ich geschrieben habe, benutzt den Timer 0 und die RS232 Schnittstelle. Es funktioniert auch meistens. Was mir aufgefallen ist, dass der Controller manche Sachen nicht immer korrekt ausführt, bzw. es geht dann manchmal gar nichts mehr. Ich verstehe nicht warum der so unstabil läuft? Oder hab ich beim Progrmmieren nen Fehler gemacht? Was dabei auch sehr komisch ist, wenn ich etwas ändere, wie z.B. einen Ausgang in der RDA Subroutine setzen, macht das Programm gar nichts mehr(RDA Interrupt wird wohl nicht mehr aufgerufen, aber warum?). Noch ne kurze Programmbeschreibung: Wenn auf Rx etwas empfängt, wird sollte der RDA Interrupt ausglöst werden. dabei wird eine LED ausgeschaltet, eine zweite angeschaltet. Nach einem Delay von 100ms wird die erste eingeschaltet und die zweite ausgeschaltet. Danach wird Timer0 initialisiert und enabled. Wenn der Timer0 seinen Interrupt auslöst, wird Das ensprechende Flag zurück gesetzt(Interrupt wird vorher disabled). Eine 3. LED wird getoggelt.
Der Quellcode ist im Anhang.
|
|
|
5
am: Mai 08, 2012, 21:45:53
|
|
Begonnen von Zeero - Letzter Beitrag von Zeero
|
|
Die Stückzahlen dürften sich eher langsam entwickeln, mittelfristig gehe ich aber von dreistelligen Stückzahlen pro Jahr aus.
|
|
|
6
am: Mai 08, 2012, 20:29:53
|
|
Begonnen von Fraeo09 - Letzter Beitrag von Fraeo09
|
"Hero-Member" zurecht  Hab mir schon gedacht, dass eine periphere Option das Verändern des Registers behindert. Danke für Deine Hilfe. 
|
|
|
7
am: Mai 08, 2012, 20:22:14
|
|
Begonnen von Fraeo09 - Letzter Beitrag von Stampede
|
Hi, der Komparator ist noch an. Das noch einfügen: BANKSEL GPIO CLRF GPIO MOVLW 07h MOVWF CMCON0
Gruß Stefan
|
|
|
8
am: Mai 08, 2012, 19:32:58
|
|
Begonnen von Zeero - Letzter Beitrag von Edson
|
Hallo, ich bin auf der Suche nach jemandem, der den Hardwareteil komplett übernimmt (d.h. inklusive Produktion und Entsorgungsbürokratie), um welche Stückzahlen handelt es sich denn voraussichtlich? Gruß, Edson
|
|
|
9
am: Mai 08, 2012, 18:53:14
|
|
Begonnen von Fraeo09 - Letzter Beitrag von Fraeo09
|
Hallo zusammen, für eine Einfache Ansteuerung einer LED durch den GP1 meines PIC12F683 will ich das GPIO-Register so einstellen, dass der besagte Pin auf High-Zustand gesetzt wird(Siehe Code). list p=12F683 ; list directive to define processor #include <p12F683.inc> ; processor specific variable definitions
errorlevel -302 ; suppress message 302 from list file
__CONFIG _FCMEN_ON & _IESO_OFF & _CP_OFF & _CPD_OFF & _BOD_OFF & _MCLRE_ON & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
; '__CONFIG' directive is used to embed configuration word within .asm file. ; The lables following the directive are located in the respective .inc file. ; See data sheet for additional information on configuration word settings. ;********************************************************************** ;Oszillator-Konfiguration OSC_CONFIG CODE 0x000 ;Start des Abschnittes der Oszillator-Konfiguration star_osc_config MOVLW 65h ;Einstellung des Oszillators: intern, 4MHz, stabil, MOVWF OSCCON CLRF OSCTUNE ;keine Einstellung der Frequenz, somit Werkseinstellung ;für Oszillator eingestellt
;********************************************************************* main ;Label der Hauptfunktion BANKSEL ANSEL ;Auswahl der Registerbank in der ANSEL liegt CLRF ANSEL ;Löschen des ANSEL-Registers BANKSEL TRISIO ;Auswahl der Registerbank in der TRISIO liegt CLRF TRISIO ;Löschen des TRISIO-Registers MOVLW 3Dh ;Konfiguration des GP1 als Ausgang MOVWF TRISIO ;über das TRISIO-Register (Tristate-Einstellung der Pins) BANKSEL GPIO ;Auswahl der Registerbank in der GPIO liegt CLRF GPIO ;Löschen des GPIO-Registers BSF GPIO, GP1 ;Umschalten des GP1 des GPIO-Registers auf "High" here GOTO here ;Endlosschleife zum Anhalten des Programms END ;directive 'end of program' Mein Problem ist dabei, dass der Pin nach erfolgreichem "Build" nicht in den gewünschten Zustand gesetzt wird und ich meinen Fehler nicht erkenne. Kann mir jemand helfen?
|
|
|
10
am: Mai 07, 2012, 09:19:26
|
|
Begonnen von Sascha_Focus - Letzter Beitrag von Stampede
|
Hallo, Die 16ms sind die Zeit, wo DREQ Low ist, sprich keine Daten haben möchte. Ja, das musst du dann aber in Relation setzen dazu, wie lange das senden selber benötigt. Das ist dann die Auslastung, die du durch das alleinige Senden erzeugst. In der Zwischenzeit muss ja dann noch der Ganze SD / USB Kram abgearbeitet werden. FLAC habe ich bis jetzt nur aus dem Datenblatt gehört. Bis jetzt noch keine Datei in dem Format gehabt Mit CDEx z.b. erzeugen. Beachte, dass du aber für FLAC das zugehörige Plugin in den Decoder laden musst. Gruß Stefan
|
|
|
Seite erstellt in 0.089 Sekunden mit 15 Zugriffen.
|
|
|
|
|