www.mikrocontroller.net

Forum: Compiler & IDEs appears to be a misspelled signal handler


Autor: little (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

ich bin gerade bei der programmierung der ISR für den uart und die spi 
wenn ich

ISR(UART_RXD_vect)

eingebe bekomme ich immer den fehler

warning: 'UART_RXD_vect' appears to be a misspelled signal handler

wie und wo kann ich den richtigen namen für meinen controller finden 
(ATtiny167)

vielen dank für eure hilfe
little

: Verschoben durch Admin
Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
little schrieb:
> wie und wo kann ich den richtigen namen für meinen controller finden

In der Doku?

Oliver
P.S. Die Doku zur avr-libs gibt es sowohl auf deiner Festplatte als auch 
im Internet.

Autor: Klaus T. (gauchi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der online Dokumentation ist unter Interrupts noch keine 167 dabei 
(zumindest finde ich mit der Suche meines Browsers nix)

Im Headerfile für den Tiny167 gibt es eine Tabelle der 
Interruptvektoren, allerdings ist da kein UART dabei. Ich vermute mal, 
der Tiny167 hat gar keine, d.h. der Blick ins Datenblatt wäre 
angebracht.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Grundsätzlich in avr/iotn167.h

Der Attiny167 hat aber kein UART sondern ein USI. Dein Programm ist 
original für den Attiny167 geschrieben?

Autor: little (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in der iotn167.h steht

/* Interrupt Vectors */
/* Interrupt Vector 0 is the reset vector. */
#define INT0_vect           _VECTOR(1)  /* External Interrupt Request 0 
*/
#define INT1_vect           _VECTOR(2)  /* External Interrupt Request 1 
*/
#define PCINT0_vect         _VECTOR(3)  /* Pin Change Interrupt Request 
0 */
#define PCINT1_vect         _VECTOR(4)  /* Pin Change Interrupt Request 
1 */
#define WDT_vect            _VECTOR(5)  /* Watchdog Time-Out Interrupt 
*/
#define TIMER1_CAPT_vect    _VECTOR(6)  /* Timer/Counter1 Capture Event 
*/
#define TIMER1_COMPA_vect   _VECTOR(7)  /* Timer/Counter1 Compare Match 
1A */
#define TIMER1_COMPB_vect   _VECTOR(8)  /* Timer/Counter1 Compare Match 
1B */
#define TIMER1_OVF_vect     _VECTOR(9)  /* Timer/Counter1 Overflow */
#define TIMER0_COMPA_vect   _VECTOR(10)  /* Timer/Counter0 Compare Match 
0A */
#define TIMER0_OVF_vect     _VECTOR(11)  /* Timer/Counter0 Overflow */
#define LIN_TC_vect         _VECTOR(12)  /* LIN Transfer Complete */
#define LIN_ERR_vect        _VECTOR(13)  /* LIN Error */
#define SPI_STC_vect        _VECTOR(14)  /* SPI Serial Transfer Complete 
*/
#define ADC_vect            _VECTOR(15)  /* ADC Conversion Complete */
#define EE_RDY_vect         _VECTOR(16)  /* EEPROM Ready */
#define ANA_COMP_vect       _VECTOR(17)  /* Analog Comparator */
#define USI_START_vect      _VECTOR(18)  /* USI Start */
#define USI_OVF_vect        _VECTOR(19)  /* USI Overflow */

#define _VECTORS_SIZE (20 * 4)



allso muss das ganze so aussehn
ISR(INT0_vect) oder so ISR(INT1_vect)

woher weiß der den jetzt das es der interrupt der uart ist

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nochmal: der Tiny167 hat kein UART, und daher auch keinen Interrupt 
dafür...

Autor: little (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
doch über den LIN seht zumindest so im datenblatt

Autor: Magnus M. (magnetus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
little schrieb:
> allso muss das ganze so aussehn
>
> ISR(INT0_vect) oder so ISR(INT1_vect)

Falsch.

> woher weiß der den jetzt das es der interrupt der uart ist

Gar nicht, WEIL DER tiny167 KEINEN UART HAT !

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
little schrieb:

> allso muss das ganze so aussehn
> ISR(INT0_vect) oder so ISR(INT1_vect)

Natürlich NICHT!

> woher weiß der den jetzt das es der interrupt der uart ist

Eben. In dem µC ist kein UART. Du kannst aber seriell über USI arbeiten.

Atmel Appnotes:
AVR319: Using the USI module for SPI communication
AVR307: Half Duplex UART Using the USI Module

Autor: Magnus M. (magnetus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
little schrieb:
> doch über den LIN seht zumindest so im datenblatt

Na dann lies dir halt das Kapitel im Datenblatt durch und nutze ggf. den 
LIN-Interrupt.

Gruß,
Magnetus

Autor: little (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
15. LIN / UART - Local Interconnect Network Controller or UART
seite 162 oder 15.2

http://www.atmel.com/dyn/resources/prod_documents/...

(Moderator's note: langen Anhang durch Link zum Hersteller ersetzt.)

Autor: Magnus M. (magnetus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
little schrieb:
> 15. LIN / UART - Local Interconnect Network Controller or UART
> seite 162 oder 15.2

Schön. Hast du bestimmt schon komplett durchgelesen, nicht wahr?

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
little schrieb:
> 15. LIN / UART - Local Interconnect Network Controller or UART
> seite 162 oder 15.2

Ok, wieder was dazugelernt. Trotzdem ist das eine exotische 
Konstruktion, die es wohl nur in ganz wenigen AVRs gibt. Die 
Programmierung ist daher nicht mit einem üblichen UART zu vergleichen. 
Du musst also wohl selbst das Datenblatt durchgehen und die nötigen 
Schritte selbst ermitteln.

PS: die Interrupts sind dann anscheinend dieselben wie für die 
LIN-Funktion, also LIN_TC_vect und LIN_ERR_vect.

Autor: little (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Magnus Müller
klar habe ich was übersehen
@Uwe
habe es mir nicht ausgesucht war ne vorgabe
aber ist LIN_TC_vect nicht zum senden ich will ja empfangen

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
little schrieb:
> @ Magnus Müller
> klar habe ich was übersehen
> @Uwe
> habe es mir nicht ausgesucht war ne vorgabe
> aber ist LIN_TC_vect nicht zum senden ich will ja empfangen


Wenn du im Header File die danebenstehende Doku liest, dann steht da 
"Transfer Complete". Da ist also weder von Senden noch von Empfangen die 
Rede, sondern davon, dass eine Übertragung abgeschlossen wurde.


Sorry: Aber da wird dir nichts anderes übrig bleiben als dich selbst 
einzuarbeiten. Und das beginnt nun mal damit, alles (vor allen Dingen 
das Datenblatt) aufmerksam zu lesen und auf die Worte zu achten.

Autor: little (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry wollte euch net verärgern ich mach das zum 1. mal und gebe mir 
wirklich die grösste mühe aber am anfang ist es nicht so leicht da 
durchzublicken

vielen dank das ihr euch zeit genommen habt war sehr hilfreich :-)


little

Autor: Magnus M. (magnetus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
little schrieb:
> sorry wollte euch net verärgern ich mach das zum 1. mal und gebe mir
> wirklich die grösste mühe aber am anfang ist es nicht so leicht da
> durchzublicken

Es sei dir verziehen. Ich hatte den Eindruck, dass du einfach zu faul 
bist das Datenblatt zu lesen.

> vielen dank das ihr euch zeit genommen habt war sehr hilfreich :-)

Wenn du das LIN-Kapitel (26 Seiten) durch hast und dann noch Fragen 
offen sind, kannst Du dich gerne wieder melden. Dann würde ich dir aber 
raten einen neuen Thread mit neuem, passenden Titel zu eröffnen.

Gruß,
Magnetus

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.