freebus.org

Open Bus System
Aktuelle Zeit: 15. Juni 2015 15:14

Alle Zeiten sind UTC + 2 Stunden




Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: LPC: Hal.c und Prot.c
BeitragVerfasst: 15. September 2009 13:06 
Offline
Expert Boarder
Expert Boarder

Registriert: 5. Juli 2009 16:47
Beiträge: 151
Wohnort: Ostfildern
Hallo,

bin gerade dabei die Software für den Universaldimmer zu planen.
Dabei habe ich festgestellt, dass dies mit den bisherigen hal.c und prot.c recht schwierig werden kann, da:

- hal.c belegt den uC während der kompletten Zeit eines Byteempfangs.
- Prot.c belegt den uC vom Ende des Telegramms bis zum senden des Ack und dem Ausführen der eigentlichen Aktion
- alles läuft auf der höchsten Interruptprio, kann also nicht unterbrochen werden
- dies ist natürlich tödlich für eine App wie einen Dimmer, der alle 10ms auf ca. 40us genau Schaltsignale ausgeben muss

Dazu einige Fragen:

- Gibt es schon Tests den Interruptlevel herunterzusetzten und der Aplikation zu erlauben die o.g. Vorgänge zu unterbrechen
Dies kann natürlich nur funktionieren wenn die Unterberchungen nur einige us dauern, oder kommt das
Protokoll da schon durcheinander?
Hat jemand Erfahrungen?

- Die Alternative dazu ist hal.c und prot.c umzuschreiben mit IRQs und Timer1 so dass der uC die meiste Zeit frei ist
Habe mir da schon einige Gedanken gemacht
Gibt es evtl hier schon Überlegungen oder Erfahrungen?
Wie ist das die Priorisierung der IRQLevel sinnvoll? Erst App oder erst EIB?

Gruß
Petzi


Zuletzt geändert von petzoldt am 12. Oktober 2009 12:57, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: LPC: Hal.c und Prot.c
BeitragVerfasst: 15. September 2009 14:56 
Offline
Administrator
Administrator

Registriert: 15. September 2007 15:31
Beiträge: 702
Wohnort: Fürstenfeldbruck
Hallo Rainer,

du kannst es auch mal mit dem AVR versuchen.
Mit diesem ist es möglich das PWM in Hardware zu erzeugen, hierfür sind keine Interrupts etc. notwendig und der Empfang und das Senden sind so geschrieben, das die Interrupts den Kontroller nur so kurz wie nötig blockieren.

_________________
Gruß
Matthias


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: LPC: Hal.c und Prot.c
BeitragVerfasst: 15. September 2009 21:50 
Offline
Platinum Boarder
Platinum Boarder

Registriert: 9. Oktober 2007 20:48
Beiträge: 961
Wohnort: Bad Königshofen
Hallo Rainer,
da ich die Idee mit dem Dimmer ja schon lange aufm Tisch hab
und eine LPC hardware für UP gemacht hab, steht natürlich eine
unterbrechbare hal an.
Ich hatte dazu schon erste software-Tests gemacht, allerdings
nachdem ein anderer user damals den Dimmer durchgezogen, das erst mal
beiseite gelegt.
als erstes muß man sich überlegen, ob und wieviel Zeitverschiebung tollerierbar ist.
man könnte sehr wohl in der HAL in den warteschleifen ein Eingang pollen und
bei Ereigniseintritt kurz reagieren sowie global Post hinterlegen.
ebenso in der Prot.
Andere Variante,die ich bereits begonnen hatte:
Die HAL unterbrechbar machen.
Ich hab dazu die aditionsmethode hergenommen, so dass durch unterbrechung
verlorene Zyklen sich kompensieren. Die Unterbrechung selbst darf nur kurz sein
da EIB nun mal zeitkritisch ist, und das unabhängig vom verwendeten Controller ;-)

_________________
LG
Andreas


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: LPC: Hal.c und Prot.c
BeitragVerfasst: 17. September 2009 13:39 
Offline
Expert Boarder
Expert Boarder

Registriert: 5. Juli 2009 16:47
Beiträge: 151
Wohnort: Ostfildern
Hallo Andreas,

meine Idee war so eine art Statemachine.
Der ext1 triggert bei jeder 0 einen interrupt der eine 0 in das aktuelle Byte schiebt. Gleichzeitig wird Timer1 mit 104us gestartet, der für das einschieben der 1 zuständig ist und wiederung T1 startet.
Bei diesem Verfahren ist die CPU nur alle 104us einige us beschäftigt und die restliche Zeit kann die App voll benutzen.
Ohne irgendwelches pollen oder POST.
Prinzipiell müsste das gehen.
Was meinst du? Ist das ein gangbarer Weg?

Gruß
Petzi


Zuletzt geändert von petzoldt am 12. Oktober 2009 12:56, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: LPC: Hal.c und Prot.c
BeitragVerfasst: 17. September 2009 21:43 
Offline
Moderator
Moderator

Registriert: 10. Juni 2007 22:00
Beiträge: 403
Wohnort: Berlin
Hi,

ich denke das wäre ein gangbarer Weg, der allerdings ein wenig arbeit macht. Aber das könnte man mal ausprobieren wenn es draußen regnet...

Gruß
Andreas (kubi)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: LPC: Hal.c und Prot.c
BeitragVerfasst: 12. Oktober 2009 12:55 
Offline
Expert Boarder
Expert Boarder

Registriert: 5. Juli 2009 16:47
Beiträge: 151
Wohnort: Ostfildern
Hallo,

ich habe mir mal die HAL und PROT vom AVR angesehen.
Im Prinzip ist es hier genau so gelöst wie ich es mir überlegt hatte (s.o.)

Gibt es bereits Pläne diese auch auf dem LPC zu implementieren?

Gruß
Petzi


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: LPC: Hal.c und Prot.c
BeitragVerfasst: 12. Oktober 2009 19:01 
Offline
Platinum Boarder
Platinum Boarder

Registriert: 9. Oktober 2007 20:48
Beiträge: 961
Wohnort: Bad Königshofen
Hallo Petzi

Ist in Arbeit, Empfangen tut schon.

_________________
LG
Andreas


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: LPC: Hal.c und Prot.c
BeitragVerfasst: 12. Oktober 2009 20:47 
Offline
Expert Boarder
Expert Boarder

Registriert: 5. Juli 2009 16:47
Beiträge: 151
Wohnort: Ostfildern
Hallo,

ist ja toll.
Ist schon eine Version im svn?

Gruß
Petzi


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: LPC: Hal.c und Prot.c
BeitragVerfasst: 12. Oktober 2009 21:17 
Offline
Moderator
Moderator

Registriert: 10. Juni 2007 22:00
Beiträge: 403
Wohnort: Berlin
Hi,

noch ist keine Version im svn. Ich will das erstmal halbwegs fertig machen. Wenn die Struktur komplet ist werde ich das aber gleich nachholen.

Gruß
kubi


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 

Alle Zeiten sind UTC + 2 Stunden


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de