Jump to content

Kā konkrēti izpaužas C++ valodas tuvums "dzelžiem".


Recommended Posts

 

 

Par dzelžiem ir pāris domas, piemēram, parastam baitam katram bitam jau preprocesora līmenī pielikt papilbitus.  Tas nodrošinatu to, ka jau pašā ieejas līmenī kodolam vai kodoliem ir pieejams originālais baits un, atkarībā no tajā līmenī veiktajiem iestatijumiem, pieejama dažāda papildus  informācija, piemeram, visiem bitiem pretējas vērtības, loģisko elementu funkcijas utt
Par šo lūdzu sīkāk. Man mikrokontroliera SPI datu reģistrā ir baits, kurš tikko ir saņemts, pa SPI līniju no citas iekārtas. Kādus papildus bitus Tu man piedāvā pievienot šim baitam. Kur man viņus likt un, ko ar viņiem darīt?
Link to post
Share on other sites
  • Replies 848
  • Created
  • Last Reply

Top Posters In This Topic

  • Raimonds1

    230

  • binary

    90

  • AndrisBB

    89

  • Mezavecis

    66

Top Posters In This Topic

Popular Posts

es, kā sabiedrības pārstāvis, saku - karogs tavās rokās!!!

Viss, kur klāt piesauc kvantus, ir kruta!

Atbildēšu uz tēmas galveno jautājumu pēc būtības: Programma tiek kompilēta uz procesora instrukcijām. Programma veic darbības ar fizisko atmiņu pa tiešo. Viss, jautājums ir atbil

Posted Images

Raimonds1

Saņemts ir 00010110

Ja ievieš papildu baitu, ar speciālua atsevišķu kontrolieri vai par binārās loģikas shēmām tam var piešķirt dažādas vērtības

piemēram, nokopēt to, katru bitu pārvērst par pretējo, pabīdīt to baitu pa labi, pa kreisi

 

un tad tur tas viss tā paralēli vienlaicīgi stāv un kontrolieris izlemj, kuru no GATAVAJĀM  paketēm tam vajag.

Link to post
Share on other sites
MarisO

 

 

dzelžu dzenāšana no Java:
 

 

Tas īstenībā ir javascript API,  ar ko var tikt pie seriālā porta.   Ar javu tik tāds sakars, ka javascriptu uzģenerē no tā.

Link to post
Share on other sites
AndrisBB

Sāku spēlēties ar RGB LED'iem. Konkrēti WS2812 (datasheet). Izmantoju LPC1768 MCU.

No sākuma bij doma izmantot SPI un sūtīt pa 8 bitu freimam kā 1 bitu no RGB (24 x 8bit).

Screenshot_at_2016_05_04_19_08_04.png

 

Ideja izgāzās, jo SPI starp freimiem ieliek nelielu pauzi (1.4 us), kas ir daudz par ilgu.

Screenshot_at_2016_05_04_19_13_49.png

 

http://postimg.org/image/7jdra6sm9/full/

 

Ko vēl varētu izmantot lai varētu saražot tādu 800khz signālu?

Edited by AndrisBB
Link to post
Share on other sites

 

 

dzelžu dzenāšana no Java:   https://vaadin.com/w...fe-9edc98950dfc
Paldies! Pirms miega palasīšu. Lai cik muļķīgi tas nebūtu ar kaut ko tādu pašreiz niekojos - dzenāju Atmel kontrolierīšus no Javas. Tieši no Javas, ne javascript. Kontrolierīšos, protams, Java nav - tas būtu par traku. Java ir uz PC, kontrolierīši tiek programmēti ASMā. Pa vidu seriālais ports un Modbus RTU protokols. Lai no Javas tiktu pie seriālā porta, lietoju jssc.jar
Link to post
Share on other sites
Jurkins
Konkrēti WS2812 (datasheet)

Šos var veselu baru savienot ar D0->DIN virknē, un tad pirmie 24 biti aizies līdz pirmajam, nākamie - līdz otrajam... piecdesmit ceturtie - līdz piecdesmit ceturtajam?

Edited by Jurkins
Link to post
Share on other sites
Saņemts ir 00010110 Ja ievieš papildu baitu, ar speciālua atsevišķu kontrolieri vai par binārās loģikas shēmām tam var piešķirt dažādas vērtības piemēram, nokopēt to, katru bitu pārvērst par pretējo, pabīdīt to baitu pa labi, pa kreisi   un tad tur tas viss tā paralēli vienlaicīgi stāv un kontrolieris izlemj, kuru no GATAVAJĀM  paketēm tam vajag.

Bet kāpēc tam būtu kaut kas papildus jāievieš pie tam speciālu atsevišķu kontrolieri vai pat binārās loģikas shēmas. Lai glabātu tajā apendiksā kaut ko kas man varbūt nemaz nebūs vajadzīgs, un kuram klāt tikšana tad būs nesalīdzināmi ilgāka un sarežģītāka, nekā vajadzīgo darbību ja pēc tādas rodas nepieciešamība, ar pāris komandām izdarīt kontroliera iekšienē.

Edited by M_J
Link to post
Share on other sites
Raimonds1

Es tā saprotu, ka izšķērdība ar procesora un atmiņas resursiem notiek tāpat, tad kāpēc gan dažuem procesiem blakus pamatbaita esošai informācijai uzreiz neiegūt  dažas papildu vērtības, kuru iegūšanai vairs nav jātērē laiks un kuras, pie tam, ir pieejamas laikā paralēli. Vairākiem procesiem. Viens apstrādā pamatbaitu, otrs = tā pretējo variantu, tad viens darbojas ar UN loģiku, bet otrs ar izslēdzošo VAI loģiku.

 

Tā pagaidām ir ideja, bet kaut kas tur ir.

Link to post
Share on other sites
AndrisBB

 

 

Šos var veselu baru savienot ar D0->DIN virknē, un tad pirmie 24 biti aizies līdz pirmajam, nākamie - līdz otrajam... piecdesmit ceturtie - līdz piecdesmit ceturtajam?
 

Tas ir viss skaidrs.

Mana doma bij ka lai nebūtu jāčakarējas ar precīzu taiminga kalkulēšanu es varētu izmantot SPI. Tad viens SPI freims būtu ekvivalents vienam no tiem 24 bitiem.

 

Piemēram, ja es gribu pirmo LED'u (123, 56, 178), tad man jānosūta 01111011 00111000 10110010. Nuļļu vietā es sūtītu 11100000 un vieninieku vietā 11111000. Problēma tanī ka tur ir pauze starp freimiem.

Palasot forumus es skatos ka citi ir izmantojuši SPI vietā SSP ar DMA un ieguvuši ciešamus rezultātus. Jāpamēģina būs vēlāk.

Link to post
Share on other sites
Jurkins

A vai, a vai, Raimis tūliņ uz mikrokontrolieriem metīsies :D. Davai labāk pamāci mūs par pointeriem.

Link to post
Share on other sites
AndrisBB
iens apstrādā pamatbaitu, otrs = tā pretējo variantu, tad viens darbojas ar UN loģiku, bet otrs ar izslēdzošo VAI loģiku.

 

Tieši tie pāris extra biti padarīs to procesoru 3x dārgāku. Paskaties cik lielu daļu no procesora aizņem kešatmiņa (L1, L2, L3), plus tos extra bitus vajadzēs gan RAMā, gan SDD utt. 

Edited by AndrisBB
Link to post
Share on other sites
Jurkins

 

 

Tas ir viss skaidrs

Tas bija kā jautājums. Tātad sapratu pareizi. Tavu domu arī sapratu. Interesants risinājums.

Nu jā, man vēl līdz DMA tālu...

Link to post
Share on other sites
Raimonds1

Tur ir jāizdomā, kad un ar kādiem datiem šo izmantot. Uz papīra zīmējot diagrammas, šādas tādas iespējas iezīmējas.


 

 

Tieši tie pāris extra biti padarīs to procesoru 3x dārgāku. Paskaties cik lieli daļu no procesora aizņem L1 kešatmiņa.
 
Link to post
Share on other sites
AndrisBB
Tur ir jāizdomā, kad un ar kādiem datiem šo izmantot. Uz papīra zīmējot diagrammas, šādas tādas iespējas iezīmējas.

 

Man arī liekas ka te arī varētu slēpties Latvijas NOKIA.

Es pagaidām esu taisijis tikai klonus dažiem vienkāršākiem processoriem un neko tamlīdzīgu tavai idejai neesu manījis

Edited by AndrisBB
Link to post
Share on other sites
Jurkins

 

 

tad kāpēc gan dažuem procesiem blakus pamatbaita esošai informācijai uzreiz neiegūt dažas papildu vērtības, kuru iegūšanai vairs nav jātērē laiks

Piemēram xmegām portiem esot (neesmu līdz tām vēl izaudzis) "papildus baiti", piem. lai veiktu output pina inversiju pietiek ierakstīt vieninieku tāda baita attiecīgajā bitā, kurš, izdarījis savu melno darbu, pats nometīsies.

Nedomāju gan, ka Raimonds domāja kaut ko šādu.

Link to post
Share on other sites

 

 

Uzrakstīju pāris simtu rindiņas, atkal viss ir slikti com.

 

Pašlaik tu esi uzrakstījis Hello World programu, kura nestrādā. Uzdevums, ko tu "atrisināji", ir izpildāms Excelī.

 

Paņem šo pašu uzdevumu, papildini ar iespēju ievadīt sienu izmērus, iespēju ievietot sienās logus, durvis, aprēķini atgriezumus, precīzu bloku skaitu/atgriezumu skaitu.UN pats galvenais -  izdomā algoritmu, realizē, izķer kļūdas, pabeidz šo savu mini projektu... To tad varētu arī saukt par programmēšanas apgūšanu. 

 

 

 

Pašlaik niekojos ar šo

 

Kāda jēga? Pabeidz to, ko iepriekš iesāki, un virzies tālāk. Kaut vai pamēģini praktiski pielietot masīvus/ciklus. Atkārtošos 9 mēnešu laikā tu esi paveicis apmēram tik daudz cik programmēšanas students apgūst pirmajās 2 akadēmiskajās nodarbībās. Par kādu tavuprāt pedagoģiju un metodēm tu tagad iedomājies tālāk stāstīt? Šim tavam uzdevumam ir visai attāls sakars ar programmēšanu jo kā jau teicu - uzdevums pašreizējā izpildījumā risinās ar excel palīdzību...Kādi pointeri, kāda bitu apstrāde. Apgūsti ciklus un masīvus - pamatlietas, ar kurām jau patiešām ir iespējams risināt kautkādus uzdevumus.

  • Patīk 3
Link to post
Share on other sites
Raimonds1

Masīvus un ciklus mācos, līdz tam, ka varēšu saveidot efektīvus piemērus sākuma izpratnei vēl jāpiestrādā.

 

Mēs varētu vienoties par kaut kādu jēdzigu komunikācijas veidu ari tad, ja es atļaujos pateikt kaut ko pret speciālistu viedokli.


paņem 640. postā minēto kodu, pirms tam izlasi šo

boot.lv/forums/index.php?/topic/140439-toroida-serdes-skersgriezuma-izmainu-aprekini/

un pasaki, kas būtu jārēķina, lai uzdevums būtu pilnīgi pabeigts un programma maksimāli derīga.


 

 

Par kādu tavuprāt pedagoģiju un metodēm tu tagad iedomājies tālāk stāstīt?

 

Es varu salikt vienkāršas matemātikas formulas programmā. Es varu ieteikt tādam, kas nezin nekā, to ar copy-paste metodi ievietot online kompilerī un apgūt, kā tas darbojas.

no savas pieredzes es varu ieteikt programmā šo to pamanīt un apskatīties, kas notiek. Kas ir, ja kaut ko nedeklarē, deklarē ar nepareizu mainigo, deklarē divreiz. kas ir tad, ja mainīgie un formulas atkārtojas, programmu pārraksta ar copy-paste un aizmirst kādu burtiņu a parsaukt par c. 

Sākuma iemaņas, kas vēl nav nekas daudz, bet dod ieskatu vienā no svarīgākajiem posmiem. 


Kas attiecas uz pedagoģiju, kā man mācīties, es joprojām gaidu vienkāršotu skaidrojumu, kas ir mainijies no tā laika, kad visur vietā un nevietā izmantoja parastos pointerus un KĀ TAGAD pareizi mācities, jo ir tāds risks, kad pa īstam uzķers to pointeru pasākumu, tad būs ļoti liels kārdinājums neko citu daudz nemeklēt, kādus tur C++11 jauninājumus ar smart pointeriem.


http://programmers.stackexchange.com/questions/56935/why-are-pointers-not-recommended-when-coding-with-c

http://programmers.stackexchange.com/questions/124570/why-pointer-symbol-and-multiplication-sign-are-same-in-c-c

kā šo var realizēt ar parastajiem pointeriem

http://stackoverflow.com/questions/569775/smart-pointers-boost-explained

Link to post
Share on other sites
binary

 

 

Ideja izgāzās, jo SPI starp freimiem ieliek nelielu pauzi (1.4 us), kas ir daudz par ilgu.

Tā pauze ir SPI definēta? Jebšu kaut kāds implementācijas ieviests kropļojums?

Pina slēgāšana taimera interruptā neder?

Link to post
Share on other sites
Jurkins

 

 

Kas attiecas uz pedagoģiju, kā man mācīties, es joprojām gaidu vienkāršotu skaidrojumu, kas ir mainijies no tā laika, kad visur vietā un nevietā izmantoja parastos pointerus un KĀ TAGAD pareizi mācities, jo ir tāds risks, kad pa īstam uzķers to pointeru pasākumu, tad būs ļoti liels kārdinājums neko citu daudz nemeklēt, kādus tur C++11 jauninājumus ar smart pointeriem.

 

Rīts ir iesācies labi :D :D :D Tu, Raimond, patiesi varētu GB talantu šovā ar Kandi konkurēt.

Link to post
Share on other sites
usver

 

 

kad pa īstam uzķers to pointeru pasākumu, tad būs ļoti liels kārdinājums neko citu daudz nemeklēt, kādus tur C++11 jauninājumus
 

 

 

tipiskā jauniešu slimība - uzzini par āmura eksistenci, un visa pasaule sāk izskatīties pēc iedzenamām naglām, pārējais sux. Bieži vien tur, kur urbis vai skrūvgrieznis labāk noderētu, bet tie taču "pārāk mainstream". Parasti tādas lietas notiek pēc linux iepazīšanas, bet nu kādam bērnu kaites pusmūžā jāpārslimo :)

 

Iemācies taisīt lietas. pēc pamata brančošanās un cikliem (if/then, for(), while()) risini reālas problēmas - nevis kabatas izmēra, bet lielākas (kaut jau pusgadu žļembātā kāršu spēle). Šauj sev kājā, saproti, ka kods ir sūc, pārraksti labāk. Iemācies lietot klases - ļoti labi noder loģikas sadalīšanai. Un vispār - es to kodu rakstītu kā klasi. Testējami ar dažādiem piemēriem, izsaucami, kur vajag. Liksi klāt GUI (es ceru, ka ar Win32 API, nevis s*da .NET, Qt vai citu augstāka līmeņa abstrakciju virs "natīvā"), kā izmantosi šo uzrakstīto? Nu neizmantosi - vajadzēs pārrakstīt/pārkopēt hārdkodēti, lai to izmantotu.

  • Patīk 3
Link to post
Share on other sites

 

 

paņem 640. postā minēto kodu, pirms tam izlasi šo

boot.lv/forums/index.php?/topic/140439-toroida-serdes-skersgriezuma-izmainu-aprekini/

un pasaki, kas būtu jārēķina, lai uzdevums būtu pilnīgi pabeigts un programma maksimāli derīga.

 

Atkārtošos. tava "programma' šobrīd izpilda primitīvas aritmētiskas darbības - no praktiskās puses skatoties - šādas problēmas tiek risinātas Excelī, nevis ar programmēšanas palīdzību.

 

Es tev ieteicu, ko tu varētu izdarīt ar savu 1. programmu - piemēram:

 

 

 

Paņem šo pašu uzdevumu, papildini ar iespēju ievadīt sienu izmērus, iespēju ievietot sienās logus, durvis, aprēķini atgriezumus, precīzu bloku skaitu/atgriezumu skaitu.UN pats galvenais -  izdomā algoritmu, realizē, izķer kļūdas, pabeidz šo savu mini projektu... To tad varētu arī saukt par programmēšanas apgūšanu. 

 

Programmēšanas pamatbūtība ir izdomāt algoritmu problēmas risināšanai un to realizēt, nevis iezubrīt kādas konkrētas valodas sintaksi (Vienalga, C++, C, VB vai Java)

 

 

 

Mēs varētu vienoties par kaut kādu jēdzigu komunikācijas veidu ari tad, ja es atļaujos pateikt kaut ko pret speciālistu viedokli.

 

Tā vietā, lai spriedelētu par lietām, par kurām tev nav nekādas sajēgas, tu varētu piemēram 2 nedēļas veltīt programmēšanas pamatiem - un tad jau atgriezties un uzdot adekvātus jautājumus

 

 

 

 

Priekš kam tev pointeri, ja tu atzīsti, ka visa pamatu pamats - cikli - tev nav īsti skaidri?

  • Patīk 1
Link to post
Share on other sites
Raimonds1

Nu pamēģini, vai pēc tēmas apraksta saproti praktisko problemu, kas jārisina.

Neprasu uzrakstīt pabeigtu kodu.

Tātad - kas praktiski vajadzīgs tajā programmā pamainīt, lai tā būtu pilnīga?


 

 

Tā vietā, lai spriedelētu par lietām, par kurām tev nav nekādas sajēgas, tu varētu piemēram 2 nedēļas veltīt programmēšanas pamatiem - un tad jau atgriezties un uzdot adekvātus jautājumus

 

Tā vietā, lai nemitīgi pārmestu man nezināšanu, varbūt uzlabo savas tēmas skaidrosanas prasmes. Zināmos apstākļos tā arī var būt vērtība.


Ja pamēģinasi manu piemēru, varbūt sapratīsi, ka man saprotama lieta Tev var nebūt tik viegli uztverama, jo gluži jau vieglajā valodā tas viss tur nav skaidrots, kā es meklēju iespējas skaidrot pointerus un ciklus.


 

 

tu varētu piemēram 2 nedēļas veltīt programmēšanas pamatiem - un tad jau atgriezties un uzdot adekvātus jautājumus

 

arī zināma taisnība jau ir. Bet kāpēc man pie pointeru izmantosanas problēmām un jaunajiem kanoniem bija jānonāk pašam , nu labi, nevertell tur kaut ko ieminējās, mācies moderno valodu?

Link to post
Share on other sites
Jurkins

 

 

Bet kāpēc man pie pointeru izmantosanas problēmām un jaunajiem kanoniem bija jānonāk pašam

Vai Tev šķiet, ka esi kaut kur nonācis? :D Paldies par pēcpusdienas jautrību! Padalījos ar kolēģiem, kuriem vispār programmēšana ir kosmoss, tagad trijatā rēcam.

Link to post
Share on other sites
usver

Nonākts ir - līdz atziņai, ka ir kaut kādi elementi, ar kuriem it kā kaut ko varot izdarīt un tas esot forši. Pagaidām taustāmākais piemērs - cipariņu izdrukāšana!

 

buttondo.gif

 

Un atziņai, ka šeit pat uz naiviem jautājumiem ir desmitiem sakarīgu un redzesloku paplašinošu komentāru. Ja vēl autors paņemtu kafiju un izietu cauri grāmatai "Teach yourself C++ in 21 days.." tā vietā, lai piemuldētu pusforumu.. varu aizdot krievisko versiju, starp citu - tāpat bērni mājās plēš grāmatas, kuras sen jau izlasītas.

te ir bijuši jaunieši - piemēram, BRT2008 te un te , kur acīmredzama liela izaugsme un īsā laikā no nulles uztaisa spēles vismaz 2 dažādās valodās, bet nu  tiem pamudinājums vai filozofēšana nav aktuāli :) žetons tādiem jauniešiem un attieksmei!

Edited by usver
Link to post
Share on other sites
Raimonds1

Atziņa ir tāda, ka jāmācās C style programmēšana, lai būtu tas tuvums dzelžiem un tur pie tēmas par manipulāciju ar atmiņu arī pointeri. Parastie. Nekāda C++.


 

 

Nonākts ir - līdz atziņai, ka ir kaut kādi elementi, ar kuriem it kā kaut ko varot izdarīt un tas esot forši. Pagaidām taustāmākais piemērs - cipariņu izdrukāšana!

 

Tas ir forši vienai no šī foruma blakustēmai - kā vienkāršāk ieinteresēt mācīties. Ar gatavām primitīvām matemātikas, fizikas, ķīmijas , grāmatvedības formulām, kuras sākumā atkārto, papildina un mācās apieties ar kompileri un mēģina saprast, ko viš grib.

Link to post
Share on other sites
Raimonds1

Linux

Libre Office Writer

Copy-Paste

Datne

Eksportēt kā pdf

Edited by Raimonds1
Link to post
Share on other sites

Raimond, es gan negāju šo ceļu.. Es no sākuma mācījos domāt algoritmu, tas ir realizēt reālās dzīves vajadzības. Par tādiem pointeriem pat nezināju, daudzus gadus - vienkārši taisīju programmas - gan dosīgajā FoxPro, pēc tam Windows, tad nāca Delphi un arī ASM draiveriem.

 

Kad sāku ņemties ar Delphi un ASM, jau zināju par pointeriem, par referencēšanu un dereferencēšanu, kompilatoru gļukiem, ko kā labāk rakstīt (gan algoritmiski, gan sintakses ziņā) lai kompilators uztaisītu max efektīvu kodu. Tas bija pēc vairākiem gadiem. Tagad zinu ļoti daudz par pointeriem, jo nākas rakstīt vairākos C dialektos. Tomēr parasti par tiem neiespringstu - lai iespringst kompilators. Tas ar ko Tu nodarbojies... labi, katram savs ceļš :)

Edited by rubb
Link to post
Share on other sites
Raimonds1

Miers.


Es ta daru, es paurbinu kādai sistēmai kādu vīlīti un tur viss kas atklājas un cilvēki sāk lamāties. Sorry.

Vienreiz man tas jau diezgan smagi atspēlējās, bet tagad izskatās, ka TĀ  sistēma ir diezgan smagi pati izgāzusies ar visiem saviem principiem un attieksmēm.


Izliekas, protams, ka viss ir kārtībā un tā jābūt.

Link to post
Share on other sites
Mezavecis

Būtu izvirzījis normālu mērķi, varētu arī diskutēt. Bet 100% Excel uzdevumus bāzt iekšā C++ ir sviests. Arī bez algoritma kaut ko kodēt vējā izmests laiks, jeb kodēt kodēšanas pēc. 

Link to post
Share on other sites

 

 

Palasīšu ka par tīro C valodu.

 

Bet protams :) Tā vietā lai praktiski mācītos programmēšanas pamatus - lasīsi par valodu atšķirībām un pēc tam atkal spamosi savas atziņas šeit forumā :) 

 

 

 

Atziņa ir tāda, ka jāmācās C style programmēšana, lai būtu tas tuvums dzelžiem un tur pie tēmas par manipulāciju ar atmiņu arī pointeri
 

 

Aha. Tev nav pat attālas nojausmas par programmēšanas pamatprincipiem, bet jau esi gatavs padalīties ar savām ārkārtīgi vērtīgajām atziņām par "C style" programmēšanu

Link to post
Share on other sites
Raimonds1

Protams, protams.

Pasaki labāk lūk ko 

http://www.programmingsimplified.com/c/source-code/c-program-for-pattern-matching

ņemam kodu, liekam http://cpp.sh

viņš saka 11:9: error: 'gets' was not declared in this scope

Meklējam , ko tas nozīmē, atrodam

Šite saka, ka priekš DEVC++ vajagot  http://stackoverflow.com/questions/23243999/gets-puts-not-declared-in-scope-in-dev-c

Šeit  savukārt http://stackoverflow.com/questions/35250198/gets-was-not-declared-in-this-scope-error

Read the gets manual. It tells you which header file needs to be included. But take careful note of what it says near the end: "Never use gets(). Because it is impossible to tell without knowing the data in advance how many characters gets() will read, and because gets() will continue to store characters past the end of the buffer, it is extremely dangerous to use. It has been used to break computer security. Use fgets() instead."

Šeit vispār par šo vienu vesela kaudze visa kā  https://www.quora.com/Why-does-Code-Blocks-compiler-show-getchar-not-declared-in-this-scope-in-C++-program-What-can-I-do

 Tad kā to kodu palaist uz tā cpp.shell  ?

Link to post
Share on other sites
AndrisBB

Ja tu pameklētu, tad redzētu ka gets() funkcija vairs netiek lietota (ieteikta).

Izmanto :

fgets(a, 100, stdin);

un viss būs ok.

 

Un kam tev kautkādus DEVC++ ? Ja lieto Linux tad ar normālu text editoru pietiek (man patīk Atom) un kompilē

gcc -o test test.c

Palaid

./test
Edited by AndrisBB
Link to post
Share on other sites
binary

 

 

(..) un viss būs ok.

Labāk uzmanīgāk ar šādiem apgalvojumiem :superstition:

Link to post
Share on other sites
AndrisBB

 

 

Tā pauze ir SPI definēta? Jebšu kaut kāds implementācijas ieviests kropļojums? Pina slēgāšana taimera interruptā neder?
 

Pačakarējos nedaudz ar tiem LED'iem atkal.

Nezinu kapēc tur pauze sanāk, parastā SPI vietā pamēģināju izmantot SSP. Ja izmanto viņu SPI modē, tad tā pati pauze, bet ja izmanto Texas Instruments SSI modi, tad pauze pazūd. Jāpaeksperimentē būs ar bitreitu un bitiem freimā, visprecizāk san;aktu ar 15 bitu freimu, bet tad baigā izškērdība.

Interupti man neder, jo tiek aslēgti uz to brīdi dēļ RTOS 

Link to post
Share on other sites
binary

Kā tev notiek datu sūtīšana pa SPI? Nesauc gadījumā kaut kādu tur bloķējošu funkciju uz katru nosūtāmo baitu?

Link to post
Share on other sites
AndrisBB

Es saucu bloķējošo funkciju :) Savādāk jau nemaz nevar, ja neizmanto interruptus.

for(i = 0; i < BUFFER_SIZE; i++)
{
    LPC_SPI->DR = spi_tx_buf[i];
    while (1)
    {
        status = Chip_SPI_GetStatus(LPC_SPI);
        if (status & SPI_SR_SPIF)
        {
              break;
        }
    } 
}

Bet nu tā pauze ir jebkurā gaddījumā, tā tas SPI darbojas

Edited by AndrisBB
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...