AtMega16 megszakítás nem működik

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
somtibi
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2008. augusztus 21. csütörtök, 6:00

AtMega16 megszakítás nem működik

Hozzászólás Szerző: somtibi »

Sziasztok!

Én új vagyok ezen az oldalon, eddig PIC-el foglalkoztam assemblerben, hobbi szinten. Nemrég tértem át kíváncsiságból az AVR procikra, Bascom-ot használva. Egy AtMega16 a kísérleti nyúl.

Eddig elég jól haladtam, most viszont már tippem sincs az alábbi esetről:

Megszakítással szeretnék nyomógombot kezelni, de a fordítás után mindíg hiba van.

A kód:

'------------------- Billentyűzet-----------------------------


$crystal = 7372800 'Sebesseg
$regfile = "M16def.dat" 'Chip
$baud = 9600



'------LCD config ---
Config Pind.7 = Output 'LCD háttérvilágítás
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
Portd.7 = 1 'LCD háttér bekapcsolás

Cls

'------ I2C config ----
Config I2cdelay = 10
Config Sda = Portc.1
Config Scl = Portc.0



'--- Interrupt config ----
Config Pinb.2 = Input 'Int1 (kapcsolo)
Portb.2 = 1 'Felhuzoellenallas(belso)

Config Int2 = Rising
On Int2 Stopbutton

Enable Interrupts
Enable Int2




Do
Cls
Locate 1 , 1
Lcd "Normal"
Wait 1
Cls
Wait 1
Loop



Stopbutton:
Cls
Locate 1 , 1
Lcd "Iterrupt"
Wait 2
Return



End

A hibaüzenet:

Error : 85 Line : 33 Unknown interrupt source [COUNT<>3] , in File : C:\PROGRAM FILES\MCS ELECTRONICS\BASCOM-AVR\FEJLESZT\ATMEGA16\BILLENTYűZET\BILL.BAS
Error : 85 Line : 33 Unknown interrupt source [INT2] , in File : C:\PROGRAM FILES\MCS ELECTRONICS\BASCOM-AVR\FEJLESZT\ATMEGA16\BILLENTYűZET\BILL.BAS


Egy nap próbálkozás után már a PIC felé kacsingatok vissza :cry: , pedig tetszik az AVR is.

Ha valaki tud segíteni, hálásan megköszönném
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Bascom verzió?
Igaz nem az 1.11.7.4-es? :)

Az 1.11.9.3 alatt lefordult.....
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Ékezetes betű ne legyen az elérési útban! "billentyűzet"
Avatar
somtibi
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2008. augusztus 21. csütörtök, 6:00

Hozzászólás Szerző: somtibi »

Szia Robert!

A Bascom verzió 1.11.8.7 (+gyógyítás). Neten találtam.

Sajnos gyógyítás kell, mert a 4k kevés.

Már észrevettem, hogy egy eljárás hívásakor a paraméter átadás sem működik tökéletesen. Pld PCF8583 beállíó rutin hívásakor az öt paraméterből csak a két utolsó- nap, hónap- értéke adódik át. Ha a változókat konstansként deklarálom, értékük simán beíródik a PCF-be.

Az elérési út nevét megváltoztattam, így sem jó.

Lehet hogy a Bascommal van baj?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A Bascomról nem nyilatkozom.... (a regisztrálttal minden OK)
Különben meg : => Bascom vétele

Valószínű hogy a Stack-eket és a Frames-t növeld meg.
A Hibakeresés/debug fejezetben van, hogy hogy állapítsd meg mekkora kell. Vagy exHas módszerrel növeld a duplájára:).


Az INT Source 3 viszont arra utal(hat), hogy a Rising-et nem ismeri....
Avatar
somtibi
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2008. augusztus 21. csütörtök, 6:00

Hozzászólás Szerző: somtibi »

Köszönöm a tippet, megpróbálom...

A stack és frames növelések nem hoztak eredményt, ugyan az a hiba.


Amúgy lefordítottam az 1.11.7.4 verzióval, és itt a Config Int2 = Rising utasítással volt baja (No more space for BIT)
Ezt az utasítást kihagyva csodák csodája, működik a megszakítás!


Mint írtam, még csak most ismerkedem a BASCOM-al, még nem tudtam eldönteni, megéri-e megvásárolni. Előbb mindenképpen egy kis sikerélményre vágyom...

Megpróbálok szerezni egy működőképes verziót (Hátha valaki megszán?),
majd gyakorlás, rutinok tesztelése...

Később, ha használni tudom, mindenképpen jogtisztára cserélem.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Teljes programban lehet a hibád valahol...
Hülye kérdés: a kapcsolásban a belső/külső felhúzóellenállás ott van?:)

ha publikus bemásolhatnád és hátha gyorsabban meglenne.... Az LCD-s az működik, és <4k...
Avatar
somtibi
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2008. augusztus 21. csütörtök, 6:00

Hozzászólás Szerző: somtibi »

Szia Robert!

Nincs még teljes program. A program rutinjait egyenként próbálom életre kelteni, és ha hiba nélkűl működnek, összeállítom a teljes programot, menüzve. Legalább is ez a terv.

PIC-eknél assemblerben írtam, ugyanezt az elvet követve. Az elején állandóan szívtam, mikor nagy buzgalmamban a teljes programot kezdtem írni, mondván, a részleteket majd kidolgozom. Olyan rejtett hibák voltak, hogy előlről kezdtem az egészet, részenként, és így sikerűlt.

Egyébként a program célja egy saját építésü gyümölcs-aszaló vezérlése. A mechanika, szekrény(160l-es hűtő), stb. már készen van.

PIC-el már több sikeres vezérlést építettem, csak az assembler kissé az ember agyát kizsigereli. A PC felől Visual Basic-et használtam, és mivel a BASCOM basic-hez hasonló, ezért kezdtem el az AVR procikkal foglalkozni.

A tervezett vezérlés:

-SHT11 szenzor (Páratartalom és hőmérséklet mérése) -működik
-4x20 karakteres LCD -működik
-4 gombos billentyűzet -még nem
-RS485 kommunikáció aPC felé -még nem
-PCF8583 óra, RAM -működik
-24LC65 eeprom -működik


Hát ennyi, ezen küzdök...
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

24LC65 helyett érdemesebb nem zárhatót berakni (24LC64/128/256/512/1024). Én a 256 vagy az 512-t választom, mert nagy és mert árban az 1 byte költsége itt a legalacsonyabb....


A RS485 PC fele:
Optikai leválasztottat tervezz be, mert füstölt-PC egy nem várt huroknál könnyen kialakul...
Februártól már én is követek el ilyet:)... Most csak sima USB->RS485 van...


4 gombos billentyűzet a legegyszerűbb. Ha van 4 portláb, akkor azt figyelni....A bill. meg a GND fele húzhatja...:).


A részprogramok kidolgozása a legfontosabb. Sub vagy Gosub-Return alapon érdemes....
És a programban egy setup menü, ahol a részfunkciók/részegységek tesztelhetőek...

Az SHT11 nálam is élesztődött... kezes józág, csak ha egyszer rossz lábon kap tápot és a valódi táp lehull róla -> megsül. Nálam egy halott SHT lett így (-5eFt a kasszából...).


Az ASM tényleg agymenés... Nem fehér embernek való...
Avatar
somtibi
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2008. augusztus 21. csütörtök, 6:00

Hozzászólás Szerző: somtibi »

Tegnap este sikerűlt leszednem a 1.11.9.0 verziót.

A fordítási hibák megszüntek, nincs 4k limit sem! :D

Most már tovább tudok lépni, csak az idő korlátoz.

Robert!

Nagyon köszönöm a segítségedet, és ezúton kivánok neked
Boldog Újévet!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Ha idovel penzkereset, erdemes a Bascomot megvenni... A verziokovetes gyarilag benne van.... Es nem kell vadaszgatni innen - onnan ki tudja milyen verziokat.

A 1.11.9.1...9.3 ujdonsagai:
- Vista64 támogatás
- ATMEGA640 támogatás
- IDE felület TAB funkció bővítés
- ATMEGA128x/256x esetén a 64K-s limit hibája kijavítva (határra került kép összetörik, adatbázis hibázik
- sok grafikus kijelzők esetén TrueType font támogatás
- INITMICRO utasítássor funcionalitás bővítése
- KS108 library javítás (>4 MHz esetén is már tökéleses)
- KS108 esetén az INITLCD bevezetése
- GETADC paraméterezhetősége (belső erősítés, differenciális mérés 1 lépésben)
- Belső hőmérő használata automotive besorolású IC-knél
- GPS koordináta kezelése
- SPIIN kezelése (ekkor az OUTon nem megy ki már jel)
- CRC számolás (8-16-32)
- USB támogatás (USB162...)
- 192*64 LCD támogatás
- FLIP támogatás
- PDF támogatás (a használt chiphez)
- PicoPower chipek támogatása
- MODBUS library (slave&master)
- STK500 natív támogatása

Ez csak a kivonata az újdonságoknak....



Remélem a PIC helyett az AVRnél kötsz majd ki végleg:)
Válasz küldése