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


von little (Gast)


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
von Oliver (Gast)


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.

von Klaus T. (gauchi)


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.

von Stefan B. (stefan) Benutzerseite


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?

von little (Gast)


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

von Uwe .. (uwegw)


Lesenswert?

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

von little (Gast)


Lesenswert?

doch über den LIN seht zumindest so im datenblatt

von Magnus M. (magnetus) Benutzerseite


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 !

von Stefan B. (stefan) Benutzerseite


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

von Magnus M. (magnetus) Benutzerseite


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

von little (Gast)


Lesenswert?

15. LIN / UART - Local Interconnect Network Controller or UART
seite 162 oder 15.2

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

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

von Magnus M. (magnetus) Benutzerseite


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?

von Uwe .. (uwegw)


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.

von little (Gast)


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

von Karl H. (kbuchegg)


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.

von little (Gast)


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

von Magnus M. (magnetus) Benutzerseite


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

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
Noch kein Account? Hier anmelden.