Neueste Beiträge
Freitag, 18. Mai 2012
 
 

Seiten: [1] 2 3 ... 10

 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! Smiley
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 Zwinkernd

Hab mir schon gedacht, dass eine periphere Option das Verändern des Registers behindert.


Danke für Deine Hilfe. Smiley

 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:
Zitat
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,

Zitat
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).
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,

Zitat
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.
Zitat
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

Seiten: [1] 2 3 ... 10

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.089 Sekunden mit 15 Zugriffen.
 
Top! Top!